我有一個webview應用程序,它監聽點擊並將它們與預定義的字符串進行比較,以檢查是否需要掛接到我的Java中。Webview資源偵聽器不捕獲加載的資源
我開始明顯:
shouldOverrideUrlLoading
,並在那裏做線沿線的東西:
if(url.contains(myhook)){
//do what i need
}
這是罰款時,其處理在網頁視圖用戶點擊次數。但現在我處於需要捕捉資源加載url的地步。所以我找到了'onLoadResource',並認爲這是我想要的 - 但我無法得到它的工作。
我一般設置:
private String myhook = "http://domain.com/listener";
{ ... }
@Override
public void onLoadResource(WebView view, String url)
{
if(url.contains(myhook)){
//do my stuff!!
mWebView.loadUrl("http://domain.com/success.html");
}
else
{
super.onLoadResource(view, url);
}
}
我的網頁代碼(index.html的):
{...}
<a href="http://domain.com/processing.php" >sign up</a>
{...}
這就要求我的PHP處理網頁:
<?php
{...}
header('Location: http://domain.com/listener/?data=#data#');
?>
但我的鉤永遠不會這樣調用success.html永遠不會被加載,我的「做我的東西」永遠不會發生。它試圖發送請求到http://domain.com/listener/?data=#data#這不存在(我只是用它來抓#數據#)。
需要注意的一件事是我的「onLoadResource」在我的private class TestWebViewClient extends WebViewClient {
之內,就在我的@Override public boolean shouldOverrideUrlLoading
之前 - 不確定這是否正確。
任何幫助或其他方法,將不勝感激。
一個供參考其他任何人這個問題:我能得到上述方法的工作(即具有onLoadResource抓住我的鉤),當用戶點擊一個鏈接,然後去處理頁面,並得到了轉發到我的鉤。但是,如果處理頁面是從表單提交發起的(這讓我難倒了好幾天),那麼它就不適用了。所以我做了一個小小的JavaScript函數,而不是使用表單提交,我做了一個。 – bMon 2011-03-09 05:24:03