Попытка передать URL-адрес из веб-браузера в браузер - PullRequest
1 голос
/ 27 декабря 2011

Я использую веб-представление высотой 60dp и передаю ему локальный HTML-файл, по умолчанию, когда я нажимаю на ссылку в веб-представлении, он должен открыть браузер. Но, как ни странно, он открывает ссылки в веб-представлении, я также попробовал клиент веб-просмотра и пытался передать URL-адрес ответа в браузер по умолчанию через намерение, но тщетно.

мой фрагмент кода:

    WebViewClient yourWebClient = new WebViewClient()
       {

           @Override
           public boolean shouldOverrideUrlLoading(WebView  view, String  url)
           {
               System.out.println("Inside WebViewClient the URL is....."+url);

               Intent i = new Intent(Intent.ACTION_VIEW);
               i.setData(Uri.parse(url));
               startActivity(i);

            return true;
           }
       };

    WebView ad = (WebView) findViewById(R.id.webview1);
    ad.getSettings().setJavaScriptEnabled(true);
    ad.loadUrl(feed.getItem(position).getLink());
    ad.getSettings().setLoadWithOverviewMode(true);
    ad.getSettings().setUseWideViewPort(true);
    ad.setInitialScale(100);
        ad.setWebViewClient(yourWebClient);
    ad.loadUrl("file:///android_asset/advertisement.htm");

1 Ответ

1 голос
/ 28 декабря 2011

Остановить текущую загрузку веб-просмотра. Поскольку реклама является объектом WebView, попробуйте сделать это следующим образом:

  @Override
       public boolean shouldOverrideUrlLoading(WebView  view, String  url)
       {
           System.out.println("Inside WebViewClient the URL is....."+url);

            ad.stopLoading();
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
            startActivity(intent);

        return true;
       }

Также добавьте это при добавлении настроек для вашего WebView:

 ad.getSettings().setSupportMultipleWindows(false);

Edit:

Попробуйте связать Chrome-клиент с вашим веб-представлением и затем проверьте:

 ad.setWebChromeClient(new MyWebChromeClient());

Надеюсь, это работает для вас.

...