【发布时间】:2019-02-26 08:09:42
【问题描述】:
我有一个带有 WebView 的应用程序,它加载电话号码列表。在某些设备中,用户在点击电话号码时无法拨打电话。
有两个页面,页面 A 和页面 B。当我加载页面 A 时,用户可以拨打电话,但在同一设备上,如果他们加载页面 B,则他们无法拨打电话。
我已检查从移动网络浏览器和 PC 网络浏览器加载这两个页面。在这两种情况下,A 和 B 都可以正常工作。如果这是因为我的 WebView 设置有问题,用户无法从页面 A 进行调用,但用户可以。
我不知道发生了什么。
shouldOverrideUrlLoading
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith("tel:")) {
makePhoneCall(url);
return true;
}
return false;
}
makePhoneCall()
public void makePhoneCall(String phoneNumber) {
if (ContextCompat.checkSelfPermission(MainActivity.this,
Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CALL_PHONE}, REQUEST_CALL);
checkPermissions();
} else {
startActivity(new Intent(Intent.ACTION_CALL, Uri.parse(phoneNumber)));
}
}
【问题讨论】: