如何解决Android:简单的Web应用程序会崩溃,而不是http方案
|| 我是为Android开发的初学者,如果这很明显,请原谅。我使用android.com中的示例创建了一个简单的Web应用程序,但是,当单击诸如tel:或mailto:的链接时,该应用程序崩溃并要求我强制退出。我想知道是否有人可以告诉我原因。public class MyApplication extends Activity {
WebView mWebView;
private class InternalWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view,String url) {
// This is my web site,so do not override; let my WebView load the page
if (Uri.parse(url).getHost().equals(\"m.mydomain.nl\")) {
return false;
} else {
// Otherwise,the link is not for a page on my site,so launch another Activity that handles URLs
Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(url));
startActivity(intent);
return true;
}
}
}
@Override
public boolean onKeyDown(int keyCode,KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode,event);
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/* Use the WebView class to display website */
mWebView = (WebView) findViewById(R.id.webview);
mWebView.setWebViewClient(new InternalWebViewClient());
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl(\"http://m.mydomain.nl/\");
}
}
解决方法
抱歉,如此愚蠢,实际上已将其修复。使用mailto时,没有主机,因此getHost()将返回null并导致异常。
private class InternalWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view,String url) {
// This is my web site,so do not override; let my WebView load the page
if (Uri.parse(url).getHost() != null && Uri.parse(url).getHost().equals(\"m.domain.nl\")) {
return false;
} else {
// Otherwise,the link is not for a page on my site,so launch another Activity that handles URLs
Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(url));
startActivity(intent);
return true;
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。