2014-02-14 71 views
1

我有这个简单的应用程序,我加载了一个WebView的HTML包含一个按钮上的Ajax调用。 我希望我的功能“shouldInterceptRequest”捕获该请求,并送点东西回来(现在是一个字符串,但是这将是一个)从webview中的自定义HTML Ajax调用没有capIn with shouldInterceptRequest

这里是我的WebViewActivity代码:

公共类WebViewActivity延伸活动{

private WebView webView; 
private Uri picUri; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.webview); 

    webView = (WebView) findViewById(R.id.webView1); 
    webView.getSettings().setJavaScriptEnabled(true); 
    //webView.loadUrl("http://www.google.com"); 


    String newHTML = "<!doctype html><html><head>"+ 
    "<script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js\"></script>"+ 
    "<script>"+ 
     "function myCall() {"+ 
      "var request = $.ajax({"+ 
       "url: \"ajax.php\","+ 
       "type: \"GET\","+    
       "dataType: \"html\""+ 
      "});"+ 
      "request.done(function(msg) {"+ 
       "$(\"#mybox\").html(msg);"+   
      "});"+ 

      "request.fail(function(jqXHR, textStatus) {"+ 
       "alert(\"Request failed: \" + textStatus);"+ 
      "});"+ 
     "}"+ 
    "</script>"+ 
      "<meta charset=\"utf-8\" />"+ 
      "<title>My jQuery Ajax test</title>"+ 
      "<style type=\"text/css\">"+ 
       "#mybox {"+ 
        "width: 300px;"+ 
        "height: 250px;"+ 
        "border: 1px solid #999;"+ 
       "}"+ 
      "</style>"+ 
     "</head>"+ 
     "<body>"+ 
      "The following div will be updated after the call:<br />"+ 
      "<div id=\"mybox\">"+ 
      "</div>"+ 
      "<input type=\"button\" value=\"Update\" />"+ 
     "</body>"+ 
    "</html>"; 



    webView.loadData(newHTML, "text/html", "UTF-8"); 


    webView.setWebViewClient(new WebViewClient() { 
     @Override 
     public WebResourceResponse shouldInterceptRequest (final WebView view, String url) { 


       return super.shouldInterceptRequest(view, url+" captured"); 

     } 

    }); 
} 
} 

出于某种原因,我没有捕捉AJAX调用。 我在做什么错?

回答

0

清单是我的问题!,我没有网络部分!所以我所做的就是在清单中,在末尾添加:

元网络: *

所以这个工作的方式是,无论我有NETWORK正在缓存之前,如果事情是不存在没有办法知道该怎么做。有了这个声明,无论我们没有缓存,我们从NETWORK得到它

+0

如何在清单中添加NETOWRK:*请给一些例子。 – user7176550

相关问题