Android Webview加载了Instagram URL,但URL并未更改

时间:2018-09-17 17:52:04

标签: android webview

我有一个简单的Webview应用程序可以加载我的网站。一切正常,但是当用户单击网页底部的Instagram图标时,我想打开Instagram应用程序,而不是加载Instagram网页。

我正在尝试通过shouldOverrideUrlLoading函数和webview.geturl("https://www.instagram.com/")实现这一目标。

问题是,当用户单击Instagram图标时,URL不变,并保持默认的“ http://archclub.ir/”。

public class MainActivity extends AppCompatActivity {
private WebView webView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    webView = findViewById(R.id.webview);
    webView.setWebViewClient(new WebViewClient());
    webView.getSettings().setLoadWithOverviewMode(true);
    webView.getSettings().setUseWideViewPort(true);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.loadUrl("http://archclub.ir/login");
    webView.setWebViewClient(new WebViewClient() {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            url = webView.getUrl();

            Toast.makeText(MainActivity.this, webView.getUrl(), Toast.LENGTH_SHORT).show();

             if (url.contains("https://www.instagram.com/")) {

                Toast.makeText(MainActivity.this, "salam", Toast.LENGTH_SHORT).show();

                webView.loadUrl("http://archclub.ir/");

            }

            return false;
        }
    });

}}

我的问题是:当用户单击网站上的Instagram图标时,Toast.makeText(MainActivity.this, "salam", Toast.LENGTH_SHORT).show();无法运行。

我已经检查过了。我已经调试了问题是单击Instagram图标时,webview.geturl等于archclub.ir/login,并且没有更改为instagram.com,但Web视图显示了Instagram页面。

1 个答案:

答案 0 :(得分:2)

您一遍又一遍地替换了网址。 请替换此代码块,而不是shouldOverrideUrlLoading方法:

        webView.setWebViewClient(new WebViewClient() {


        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
           // url = webView.getUrl();  // just omit this line

            Toast.makeText(ali.this, webView.getUrl(), Toast.LENGTH_SHORT).show();


            if (url.contains("https://www.instagram.com/")) {

                Toast.makeText(ali.this, "salam", Toast.LENGTH_SHORT).show();

                webView.loadUrl("http://archclub.ir/");
                return true;


            } else return false;
        }


    });