我试图在Android网页浏览器上打开一个tel:链接,但它会让我的应用程序崩溃,请有人帮忙解决这个问题或告诉我出错了什么。
MyAppWebViewClient.java
package org.event2u.event2u;
import android.content.Intent;
import android.net.Uri;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MyAppWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (Uri.parse(url).getHost().endsWith("event2u.org")) {
return false;
}
if (url.startsWith("tel:")) {
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(url));
view.getContext().startActivity(intent);
//view.reload();
return true;
}
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
view.getContext().startActivity(intent);
return true;
}
}
答案 0 :(得分:0)
我已尝试使用此代码,应用程序不会崩溃。
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith("tel:") || url.startsWith("sms:") || url.startsWith("smsto:") || url.startsWith("mailto:") || url.startsWith("mms:") || url.startsWith("mmsto:") || url.startsWith("market:")) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
} else {
view.loadUrl(url);
return true;
}
}
}
我认为它崩溃的问题是因为你这样说:
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(url));
view.getContext().startActivity(intent);