我正在尝试从浏览器和Google搜索的网址中打开我的WebView应用。
我尝试使用以下代码:How to launch app on click of url in android
<intent-filter>
<data android:scheme="https" />
<data android:scheme="https" android:host="www.webviewurl.com"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
但它没有用。
我想强制打开所有网址,例如:
https://*.webviewurl.com/*
http://webviewurl.com/*
到WebView中的https://www.webviewurl.com/*
。
我已使用.htaccess
在服务器中完成此部分。
我希望默认情况下在WebView中打开URL。
答案 0 :(得分:2)
您可以使用WebViewClient
执行此任务。
mWebView = (WebView) findViewById(R.id.activity_main_webview);
progressBar = (ProgressBar) findViewById(R.id.progressBar1);
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.loadUrl("http://chatadda.com");
mWebView.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url) {
String url2="http://www.chatadda.com/";
// all links with in ur site will be open inside the webview
//links that start ur domain example(http://www.chatadda.com/)
if (url != null && url.startsWith(url2)){
return false;
}
// all links that points outside the site will be open in a normal android browser
else {
view.getContext().startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
return true;
}
}
});
答案 1 :(得分:0)
通过执行以下操作已解决该问题:
AndroidManifest.xml
<intent-filter>
<data android:scheme="https" />
<data android:scheme="https" android:host="www.webviewurl.com"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
MainActivity.java
public class webclient extends WebViewClient {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(url.contains("play.google")){
view.getContext().startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
}
if ((url.contains("webviewurl.com"))) {
view.loadUrl(url);
return true;
} else {
view.getContext().startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
}
return true;
}
哪个工作正常。唯一的问题是,所有页面都在应用程序中打开主页。
就像用户点击浏览器中的链接https://www.website.com/folder/page
一样,它会在应用中打开https://www.website.com/
。
如何解决此问题?