#java #android #android-webview
#java #Android #android-webview
Вопрос:
Мой WebView в моем приложении работает нормально, но когда я загружаю URL =https://www.esheba.cnsbd.com / #/ Он автоматически перенаправляется на ссылку Play Store, которая указана в качестве ссылки для скачивания в нижней части веб-сайта, но когда я просматриваю браузер формы ссылки, он работает нормально. Пожалуйста, кто-нибудь скажет мне, почему его перенаправление только в 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);
}
}
Ответ №1:
Я думаю, вы хотите перенаправить в Play Store, если это ссылка на Play Store. Итак, если это то, что вы хотите, вы можете использовать:
@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;
}
}
Комментарии:
1. Спасибо вам за ваш повтор, но я не хочу открывать playstore, на самом деле я хочу знать, почему URL = esheba.cnsbd.com не загружается в webview, перенаправляет на веб-сайт playstore.
2. Потому что, когда он перенаправляет снова, он начинается с «intent: //», возможно. Просто зарегистрируйте свой URL и посмотрите logcat, чтобы подтвердить это.