新增异常处理机制,页面语音设置,网络设置

This commit is contained in:
2021-02-19 14:09:07 +08:00
parent 5be007a9a9
commit dad3de84ba
15 changed files with 394 additions and 97 deletions

View File

@ -15,12 +15,15 @@ import android.widget.ProgressBar;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import chaoran.business.BrandEnum;
import chaoran.business.R;
import chaoran.business.adapter.*;
import chaoran.business.vioce.TekVoiceEngine;
import chaoran.business.vioce.VoiceEngine;
import chaoran.business.engine.NetworkSettingEngine;
import chaoran.business.engine.SettingEngine;
import chaoran.business.engine.TekVoiceEngine;
import chaoran.business.engine.VoiceEngine;
/**
* 流程:联网认证设备型号,验证通过,查找设备品牌进行调用驱动操作
@ -34,7 +37,10 @@ public class MainActivity extends AppCompatActivity implements ResultListener {
private WebView webView;
private Adapter adapter;
private VoiceEngine voiceEngine;
private SettingEngine settingEngine;
private ProgressBar progressBar;
private ActionBar actionBar;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
@ -68,16 +74,22 @@ public class MainActivity extends AppCompatActivity implements ResultListener {
@SuppressLint("JavascriptInterface")
private void initView() {
//隐藏状态栏
getSupportActionBar().hide();
actionBar = getSupportActionBar();
voiceEngine = new TekVoiceEngine(this);
settingEngine = new NetworkSettingEngine(this);
webView = findViewById(R.id.webView);
progressBar = findViewById(R.id.loading);
webView.setWebViewClient(disposeView());
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
//设置接口进行windows暴露
settings.setDomStorageEnabled(true);
webView.addJavascriptInterface(voiceEngine, "VoiceEngine");
//语音引擎
webView.addJavascriptInterface(voiceEngine, "TekVoiceEngine");
//网络设置展示
webView.addJavascriptInterface(settingEngine, "NetworkSettingEngine");
//重新加载页面
webView.addJavascriptInterface(this, "View");
webView.loadUrl(url());
}
@ -94,6 +106,10 @@ public class MainActivity extends AppCompatActivity implements ResultListener {
//页面加载完成时
@Override
public void onPageFinished(WebView view, String url) {
if (!url.startsWith("file"))
actionBar.hide();
else
actionBar.show();
super.onPageFinished(view, url);
progressBar.setVisibility(View.INVISIBLE);
}
@ -111,6 +127,8 @@ public class MainActivity extends AppCompatActivity implements ResultListener {
default:
webView.loadUrl("file:///android_asset/error/index.html");
}
actionBar.show();
actionBar.setTitle(R.string.title_activity_main);
super.onReceivedError(view, errorCode, description, failingUrl);
progressBar.setVisibility(View.INVISIBLE);
}
@ -130,6 +148,8 @@ public class MainActivity extends AppCompatActivity implements ResultListener {
webView.loadUrl("file:///android_asset/error/index.html");
}
}
actionBar.show();
actionBar.setTitle(R.string.title_activity_main);
super.onReceivedError(view, request, error);
progressBar.setVisibility(View.INVISIBLE);
}
@ -172,13 +192,11 @@ public class MainActivity extends AppCompatActivity implements ResultListener {
case R.id.action_setting_voice:
startActivity(new Intent(this, VoiceSettingActivity.class));
break;
case R.id.action_about:
startActivity(new Intent(this, AboutActivity.class));
break;
}
return super.onOptionsItemSelected(item);
}
//拼接url
private String url() {
SharedPreferences spf = this.getSharedPreferences("crtech", Context.MODE_PRIVATE);
Integer port = spf.getInt("port", -1);
@ -191,4 +209,10 @@ public class MainActivity extends AppCompatActivity implements ResultListener {
return link.startsWith("http://") ? link : "http://".concat(link);
}
@JavascriptInterface
public void reload() {
runOnUiThread(() -> {
webView.loadUrl(url());
});
}
}