2012-07-13 89 views
2

我在android中使用webview創建了一個web瀏覽器。我的目標是在加載之前控制webview的內容。每當webview的內容向任何域服務器發出請求時,它都必須通過shoulInterceptRequest()。如果網址指向任何視頻上傳網站(youtube.com,vimeo.com),我可以將其更改爲某些拒絕訪問的網址,以便視頻不會被加載。在android webview中阻止視頻 - shouldInterceptRequest()的替代方法

@Override 
    public WebResourceResponse shouldInterceptRequest(final WebView view, String url) { 
     try { 
      if (access.permission(url)) { 
       return super.shouldInterceptRequest(view, url); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return getResponseData(); 
    } 

    private WebResourceResponse getResponseData() { 
     try { 
      String str = "Access Denied"; 
      InputStream data = new ByteArrayInputStream(str.getBytes("UTF-8")); 
      return new WebResourceResponse("text/css", "UTF-8", data); 
     } catch (IOException e) { 
      return null; 
     } 
    } 

shoulInterceptRequest()從API 11.速效我需要它從API 8

工作有沒有落實任何替代辦法?如果要在加載任何數據之前將任何視頻上傳到網站,我需要阻止該網址。

回答

1

如何使用http://developer.android.com/reference/android/webkit/WebViewClient.html#shouldOverrideUrlLoading(android.webkit.WebView,java.lang.String)事件?

您可以阻止URL,然後調用http://developer.android.com/reference/android/webkit/WebView.html#loadUrl(java.lang.String)來顯示任何你想要的(甚至運行與任意JavaScript「的javascript:do_something()」符號)

+1

shouldOverrideUrlLoading()只針對主URL,它是加載到webview中。也就是說,webview.loadUrl(www.example.com)。如果www.example.com包含視頻,則日誌不會顯示該網址。它總是在shouldOverrideUrlLoading中顯示www.test.com – 2012-07-14 02:05:58