2016-10-04 155 views
0

我正在android中的webview中加載一個頁面。該頁面與下面的代碼,NB元素(按鈕): - 這是一個第三方網站,我這裏出過的代碼無法控制: -如何在android webview中注入javascript接口?

<i class="icon close cardClose" role="button" title="Close recently linked screen" tabindex="0"></i> 

我想添加一個JavaScript接口,在

private class myWebViewClient extends WebViewClient { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 
      view.addJavascriptInterface(new Object() 
      { 
       @JavascriptInterface 
       public void performClick() throws Exception 
       { 
        Toast.makeText(Activity.this, "Login clicked", Toast.LENGTH_LONG).show(); 
       } 
      }, "login"); 
      return true; 
     } 
    } 


mWebView.setWebViewClient(new myWebViewClient()); 

但問題是,網頁流量的源代碼說: - - :下面的方法

* @param object the Java object to inject into this WebView's JavaScript 
    *    context. Null values are ignored. 
    * @param name the name used to expose the object in JavaScript 
    */ 
    public void addJavascriptInterface(Object object, String name) { 
     checkThread(); 
     mProvider.addJavascriptInterface(object, name); 
    } 

按鈕多年平均值似乎有一個名爲「名」的屬性。如果有人知道,請對此進行一些瞭解。

+0

你需要傳遞JavascriptInterface對象的名稱,從中我們可以訪問方法 –

+0

@RahulKhurana如何獲取該名稱? –

+0

我不會使用匿名內部類。所有'addJavascriptInterface()'的例子我知道使用一個命名的類。 – Robert

回答

0

我推薦你使用這種方式

view.addJavascriptInterface(new JavaScriptInterfaceNew(getActivity(), this), "Android_Normal_Test"); 

這裏JavaScriptInterfaceNew是你的類名,當你需要從webview一些事件傳遞給Android_Normal_Test將是你的對象你activity class

+0

請讓答案更清楚,並請堅持問題中給出的示例代碼。我不是java腳本的專家,這就是爲什麼。 –

+0

好的。你想執行performClick方法? –

+0

是的,我想執行performClick方法的按鈕,在問題中我已經問過的HTML代碼。 –