android - WhatsApp 自定义 url 方案在 Webview 中不起作用
问题描述
我在 android 中进行 webview,我在该网站中调用网站链接,我正在调用web.whatsapp.com链接。现在这个链接在桌面和移动视图中运行良好,而如果我在 webview 中打开相同的链接然后显示错误,即网页不可用更清晰,让我们看看错误图像
这是webview android的代码
public class MainActivity extends AppCompatActivity {
WebView webView;
ProgressBar bar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.webView2);
bar =(ProgressBar) findViewById(R.id.progressBar2);
webView.setWebViewClient(new myWebClient());
webView.loadUrl("http://.../");
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new myWebClient());
}
public class myWebClient extends WebViewClient{
@Override
public void onPageFinished(WebView view, String url) {
bar.setVisibility(View.GONE);
view.setVisibility(webView.VISIBLE);
super.onPageFinished(view, url);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
bar.setVisibility(View.VISIBLE);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
bar.setVisibility(View.GONE);
return super.shouldOverrideUrlLoading(view, url);
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()){
webView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
解决方案
尝试override shouldOverrideUrlLoading
在您的网络客户端中使用下面给出的代码。
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
boolean overrideUrlLoading = false;
if (url != null && url.startsWith("whatsapp://")) {
view.getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
overrideUrlLoading = true;
} else {
view.loadUrl(url);
}
return overrideUrlLoading;
}
推荐阅读
- next.js - 在 Next.js 中添加带有 onload 的脚本
- python - 为什么我无法运行这个 xlwings 程序
- django - 如何在 Django rest 框架中的嵌套序列化程序上添加过滤器?
- wordpress - 自定义帖子类型的类别 URL
- javascript - 在我单击 Vue Devtools 中的组件之前,计算值不会显示
- elasticsearch - Logstash restarts with "ConcurrentModificationException" error
- amazon-web-services - 从 AWS CDK 中 SSM 参数名称中的堆栈参数命名 SSM 参数
- swift - Please explain the meaning of '!' in context to a function call
- sql - SQL: how to create a column to record the length of a user's session time?
- java - JMeter distributed testing from Java code - csv dependent data in slaves