java - WebView 中的 URL 自动重定向 - Android
问题描述
我的应用程序中的 WebView 工作正常,但是当我加载 URL= https://www.esheba.cnsbd.com/#/ 它会自动重定向到作为下载链接链接在网站底部的 Play 商店链接,但是当我浏览链接表单浏览器时工作正常。请任何人告诉我为什么它只在 WebView 中重定向?这是我正在使用的代码。
在 XML 中
<WebView
android:layout_alignParentTop="true"
android:id="@+id/campaign_webview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
活动中
campaign_webview.getSettings().setJavaScriptEnabled(true);
campaign_webview.getSettings().setLoadWithOverviewMode(true);
campaign_webview.getSettings().setDomStorageEnabled(true);
campaign_webview.getSettings().setUseWideViewPort(true);
campaign_webview.getSettings().setBuiltInZoomControls(false);
campaign_webview.getSettings().setPluginState(WebSettings.PluginState.ON);
campaign_webview.setWebViewClient( new CustomClient());
campaign_webview.loadUrl(url);
private class CustomClient extends WebViewClient{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url) {
Log.d("web_view: finish",url);
}
}
解决方案
如果它是 Play 商店链接,我认为您想重定向到 Play 商店。因此,如果这是您想要的,那么您可以使用:
@Override
public boolean shouldOverrideUrlLoading(WebView
view, String url) {
if (url.startsWith("intent://")) {
//load store
try{
Intent intent = Intent.parseUri(url,
Intent.URI_INTENT_SCHEME);
PackageManager packageManager =
context.getPackageManager();
ResolveInfo info =
packageManager.resolveActivity(intent,
PackageManager.MATCH_DEFAULT_ONLY);
if (info != null) {
context.startActivity(intent);
}
return true;
}catch((ActivityNotFoundException e)
{
//If activity not found try to load it and also a display toast.
Toast.makeText(context, "Activity not found", Toast.LENGTH_SHORT).show();
return false;
}
}
else
{
//load url
view.loadUrl(url);
return false;
}
}
推荐阅读
- sockets - linux中的套接字TCP - 客户端无法插入用户名
- pine-script - 为什么不计算平均值并返回 NaN?
- vb.net - Grapecity Active 报告 - 用信纸打印,内容被截断
- azure - Azure 认知服务如何更新?
- sas - 如何在 SAS 函数中指定一系列变量?
- excel - VBA:将特定公式转换为值
- python - 离散化:将连续值转换为一定数量的类别
- android - android小部件中的进度条在真实终端中没有动画
- arrays - 为什么在 C 中显示数组时会发生此错误?
- javascript - 请求的资源上存在 Vue js Access-Control-Allow-Origin' 标头