2013-03-02 19 views
5

Bir Android Web Görünümünde URL karma değişimlerini tespit etmem gerekiyor, ancak bunu yapmanın bir yolunu bulamıyorum. shouldOverrideUrlLoading(), ilk sayfa yüklemesinde tetiklenir, ancak sayfa yüklendikten sonra herhangi bir sonraki karma değişiklik için tetiklenmez.Android WebView: URL karma değişimini tespit etmek mümkün mü?

Bu, Android WebView ile mümkün mü?

cevap

7

Bu mümkündür.

private class MyJSI { 
     public void doStuff() 
     { 
     } 
} 

Ve böyle JavaScript Arayüzü ile web görüntülemesini bağlantı:

Böyle bir JavaScript Arayüzü beyan etmek zorunda

webView.addJavascriptInterface(new MyJSI(), "myjsi"); 

Ardından, bazı javascript kodu yazmak zorunda sayfa, hash değiĢtirmesindeki doStuff işlevini çağırmak için yüklenir.

webview.setWebViewClient(new WebViewClient() { 

     public void onPageFinished(WebView view, String url) 
     { 
       view.loadUrl("javascript:window.onhashchange = function() { myjsi.doStuff(); };"); 
     } 
}); 

Umarım yardımcı olur. Test ettim ve işe yarıyor.

+0

onPageBilinen URL parçasını (#) değiştirdiğini algılar, evet. Sadece url değişti. Ancak, shouldOverrideUrlLoading ile yapabildiğimiz bu değişiklikleri bir şekilde değiştirebilir miyiz? –

İlgili konular