为甚么我用android studio写这个js程序就会崩溃,去掉就可以正常运行了
是一添加WebSettings set=wv.getSettings();这个语句就会崩溃,wv是我设置的WebView名称
是一添加WebSettings set=wv.getSettings();这个语句就会崩溃,wv是我设置的WebView名称
2016-08-13
public class MainActivity extends AppCompatActivity {
private WebView wv;
private ProgressDialog pd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
wv=(WebView)findViewById(R.id.webView);
wv.loadUrl("http://www.bilibili.com");
//使得网页从WebView中打开,而不是跳转
wv.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
//判断页面加载过程
wv.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
if(newProgress==100){
closeDialog();
}else {
openDialog(newProgress);
}
}
private void openDialog(int newProgress) {
//如果对话框等于空,也就是没有对话框
if(pd==null){
//设定一个新的对话框
pd=new ProgressDialog(MainActivity.this);
//设置标题
pd.setTitle("加载中。。。");
pd.setIcon(R.mipmap.ic_launcher);
//设置对话框进度条样式,设置为横向
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
//设置进度,随刷新进度改变
pd.setProgress(newProgress );
pd.show();
}else{
pd.setProgress(newProgress );
}
}
private void closeDialog() {
if(pd!=null&&pd.isShowing()){
pd.dismiss();
pd=null;
}
}
});
}
//改写前进与后退的逻辑,使得物理返回按钮默认为上一页面
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode==KeyEvent.KEYCODE_BACK){
if(wv.canGoBack()){
wv.goBack();
return true;
}else {
System.exit(0);
}
}
return super.onKeyDown(keyCode, event);
}
}举报