2016-10-03 99 views
1

我在webview中加載網址。如下所示: -WebView檢測按鈕單擊事件

mWebView    =  (WebView)findViewById(R.id.id__web_view); 
mWebView.getSettings().setJavaScriptEnabled(true); 
mWebView.setWebViewClient(new WebViewClient()); 
mWebView.loadUrl("http://www.google.com"); 

如何檢測加載頁面內的按鈕單擊事件。舉例來說,當用戶在搜索完成後點擊「圖片」標籤時,我想顯示一個「點擊」吐司(請注意,按鈕點擊的檢測比我加載的頁面提前一頁)。

我曾嘗試過: - 我做了一些研究如何做到這一點,但沒有一個是果實。 下面就是其中之一: -

​​

但是這需要在HTML中添加的onclick,我不知道是有可能做到這一點的第三方網站。如果任何人有任何線索,請對這個問題進行一些解釋。

+0

用'WebView.loadUrl'注入的JavaScript這將某種方式找到的按鈕,並添加點擊監聽器 – Selvin

回答

1

結帳下面的代碼。它的工作對我罰款

@SuppressLint("SetJavaScriptEnabled") 
public class MainActivity extends Activity { 

    private WebView mWebView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mWebView = (WebView)findViewById(R.id.webView1); 
     mWebView.getSettings().setJavaScriptEnabled(true); 
     mWebView.getSettings().setLoadsImagesAutomatically(true); 
     mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); 
     mWebView.setWebViewClient(new MyBrowser()); 
     mWebView.loadUrl("file:///android_asset/index.html"); 
    } 


    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 
       { 
        Log.d("LOGIN::", "Clicked"); 
        Toast.makeText(MainActivity.this, "Login clicked", Toast.LENGTH_LONG).show(); 
       } 
      }, "login"); 
      return true; 
     } 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

}