java - Webview 设置 overrideurl 未使用
问题描述
我试图使用 shouldOverrideUrlLoading 来处理我的 webview 上的一些 tel: 链接,但我收到此错误:
错误:方法没有覆盖或实现超类型中的方法
我该如何解决?
public class MainActivity extends AppCompatActivity {
private WebView myWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myWebView = (WebView) findViewById(R.id.WebView);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.loadUrl("https://**************/");
myWebView.setWebViewClient(new WebViewClient());
final ProgressBar Pbar;
Pbar = (ProgressBar) findViewById(R.id.pB1);
myWebView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress)
{
if(progress < 100 && Pbar.getVisibility() == ProgressBar.GONE){
Pbar.setVisibility(ProgressBar.VISIBLE);
}
Pbar.setProgress(progress);
if(progress == 100) {
Pbar.setVisibility(ProgressBar.GONE);
myWebView.requestFocus(View.FOCUS_DOWN);
}
}
@SuppressWarnings("deprecated")
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith("tel:")) {
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(url));
startActivity(intent);
view.reload();
return true;
}
view.loadUrl(url);
return true;
}
});
}
}
覆盖是灰色的,但我不知道如何修复它,我对 java 不是很熟悉,它让我发疯,提前谢谢!
解决方案
这是因为您尝试覆盖的WebChromeClient中没有shouldOverrideUrlLoading 。
您可以覆盖 WebChromeClient 的 shouldOverrideUrlLoading,因为它存在于其中
推荐阅读
- git - 如何使用 Jenkins 为许多 repos 创建和推送新的 Github 分支?
- python-3.x - 在 python 脚本中自动更新 Ubuntu IP 地址
- angular - 在 main.ts 和 app.module 中使用相同的服务实例化(到处都是单例)
- c# - C# 模拟 Windows 中的默认拖放功能(拖动过程中的透明图像)
- flutter - 如何从资产中预加载图像?
- wpf - 在 Service 和 ViewModel 之间传递数据
- python - 如何组合不同通道的图像?
- clojure - Clojure 的 SSE(服务器发送事件)客户端库?
- javascript - 设置路由的基本路径
- javascript - 点击 Javascript 将类应用到不同的类