Не удается запустить новое действие в WebView

#android #webview

#Android #webview

Вопрос:

Я пытаюсь инициировать новое действие при нажатии на определенную ссылку в webview. Однако это не создает новое действие, а открывает ссылку в webview.

ActivityA.java

 myWebView = (WebView) findViewById(R.id.webView3);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.addJavascriptInterface(new WebPageInterface(this),"Android");

ProgressBar progressBar = (ProgressBar) findViewById(R.id.progressBarRestaurant);
myWebView.setWebViewClient(new AppWebViewClients(progressBar));

myWebView.loadUrl(webaddress);
myWebView.reload();

public class AppWebViewClients extends WebViewClient {

        private ProgressBar progressBar;

        public AppWebViewClients(ProgressBar progressBar){
            this.progressBar = progressBar;
            progressBar.setVisibility(View.VISIBLE);
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (url.contains("bayview")) {
                Intent intent = new Intent(getBaseContext(), NewAct.class);
                intent.putExtra("url","http://www.stackoverflow.com");
                Log.v("PAGE","Page entered");
                startActivity(intent);
            }
            return true;
        }

       @Override
        public void onPageFinished(WebView view, String url){
            super.onPageFinished(view, url);
            progressBar.setVisibility(View.GONE);
        }
    }
  

веб-адрес (загрузка веб-страницы в webview)

 <div data-demo-html="true">
    <ul data-role="listview" data-theme="a" data-split-theme="b" data-split-icon="plus" data-inset="true" id="rest_mesgs">
<li id="0004">
<a href="bayview_abc.html">
<img style="height:80px;" src="BayView.jpg">
<h2 style="text-wrap: normal">Bay View</h2>
<p id="type" class="ui-li-aside"><strong>BB</strong></p>
<p> 123 Road</p>
</a>
</li>
</ul>
</div>
  

Комментарии:

1. Как только я удаляю jQuery, он работает нормально. Есть какая-то проблема с захватом URL-адреса с помощью jQuery?

Ответ №1:

Этот метод, казалось, сотворил волшебство: onLoadResource . Вот что я сделал ->

  public void onLoadResource(WebView view, String url){
            if(url.contains("bayview")){
                Intent intent = new Intent(getBaseContext(),NewAct.class);
                intent.putExtra("url", "http://www.stackoverflow.com");
                startActivity(intent);
            }
        }
  

Однако этот метод также заставляет ваш webview переходить по этой конкретной ссылке. Чтобы решить эту проблему, вы можете снова загрузить webview с тем же адресом onResume.

 public void onResume(){
        super.onResume();
        myWebView.loadUrl(webaddress);
    }