URL веб-загрузки Android загружается в Instagram, но URL не изменился - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть простое приложение для просмотра веб-страниц, которое загружает мой веб-сайт. Все в порядке, но когда пользователь нажимает на значок 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, но в веб-просмотре отображается страница Instagram.

1 Ответ

0 голосов
/ 17 сентября 2018

вы заменяли URL снова и снова.пожалуйста, замените этот блок кода вместо 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;
        }


    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...