作者:手机用户2502934875 | 来源:互联网 | 2023-02-13 12:51
我已经找到了一个让android在webview中工作的方法,但该方法已被弃用.任何人都可以给我新方法的完整代码片段.这是我在这个网站上找到的方法
Java代码如下:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith("tel:")) {
initiateCall(url);
return true;
}
if (url.startsWith("mailto:")) {
sendEmail(url.substring(7));
return true;
}
return false;
}
但是当我将目标平台作为Android 7.1.1时,它无法正常工作
1> Abhishek Sin..:
Android N及以上版本具有此方法签名:
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request)
所有Android版本都支持的方法具有此方法签名:
public boolean shouldOverrideUrlLoading(WebView view, String url)
我该怎么做才能使它适用于所有版本?
你需要覆盖这两种方法
对于每个api,Android N+
您需要更改代码.
请检查以下代码.它将针对较低的API N
以及以上
@SuppressWarnings("deprecation")
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith("tel:")) {
initiateCall(url);
return true;
}
if (url.startsWith("mailto:")) {
sendEmail(url.substring(7));
return true;
}
return false;
}
@RequiresApi(Build.VERSION_CODES.N)
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
String url = request.getUrl().toString();
if (url.startsWith("tel:")) {
initiateCall(url);
return true;
}
if (url.startsWith("mailto:")) {
sendEmail(url.substring(7));
return true;
}
return false;
}