2013-03-29 6 views
0

загружает HTML моей WebView сAndroid WebView loadDataWithBaseURL со ссылкой равен BaseUrl работает неправильно

this.webViewer.loadDataWithBaseURL(BASE_URL, completeNewsTemplate, 
       "text/html", "UTF-8", null); 

Где base_url = "http://www.example.ru" я использую его для загрузки изображений WebView с относительными изображениями SRC-х

если в HTML soruce я получил HREF ссылку как

<a href="http://www.example.ru" target="_blank">Example</a> 

Тогда это просто перезагрузить текущую WebView, и целевой атрибут делает ничего для открытого нового ветра вл.

Как сделать webview ссылку в новом окне?

ответ

1

Это решение.

Если ваша ссылка равна базовому url WebView, подумайте, что вы хотите работать только с текущей страницей.

Вы можете попробовать поймать его как

webViewer.setWebViewClient(new WebViewClient() { 
      @Override 
      public void onPageStarted(WebView view, String url, Bitmap favicon) { 
       System.out 
        .println("DetailViewActivity.onCreate(...).new WebViewClient() {...}.onPageStarted()"); 
        super.onPageStarted(view, url, favicon); 

      } 

      @Override 
      public void onPageFinished(WebView view, String url) { 
          System.out 
        .println("DetailViewActivity.onCreate(...).new WebViewClient() {...}.onPageFinished()"); 
       super.onPageFinished(view, url); 

      } 

      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      System.out 
        .println("DetailViewActivity.onCreate(...).new WebViewClient() {...}.shouldOverrideUrlLoading()"); 
       return false; 

      } 

     }); 

Но тогда нажмите на вашу ссылку в WebView вы никогда не уволят shouldOverrideUrlLoading или onPageStarted только onPageFinished с base_url.

Таким образом, мое требование используется для базового url другого домена без www префикс.

Здесь пример, если вы домен www.example.com используйте базовый url example.com