如何在WebView中强制打开URL?将App设置为WebView URL的默认值

时间:2016-05-28 06:25:47

标签: android android-studio webview

我正在尝试从浏览器和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。

2 个答案:

答案 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/

如何解决此问题?