經過js調用android原生方法

有時候咱們有這樣一個需求,監聽html中控件的一些事件。例如點擊html中某個按鈕,跳轉到別的activity,複製某段文本。 
首先是對webview的設置:javascript

myWebView = (WebView) findViewById(R.id.myWebView);
        myWebView.getSettings().setJavaScriptEnabled(true); myWebView.addJavascriptInterface(new JavaScriptinterface(this), "android"); myWebView.setWebViewClient(new myWebViewClient());

建立JavaScriptinterface類:html

複製代碼
public class JavaScriptinterface { Context context; public JavaScriptinterface(Context c) { context= c; } /** * 與js交互時用到的方法,在js裏直接調用的 */ @JavascriptInterface public void showToast(String ssss) { Toast.makeText(mContext, ssss, Toast.LENGTH_LONG).show(); } }
複製代碼

高版本中在容許被js調用的方法加上@JavascriptInterface註解 
而後使用webview的addJavascriptInterface添加這個類的對象,取一個名字。java

複製代碼
<script type="text/javascript">   
function showToast() { android.showToast("哈哈啊哈 "); } </script> </head> <body> <input type="button" value="調用" onClick="showToast()"/> </body>
複製代碼

html代碼很簡單,在想調用原生方法的js方法中使用Android.shwoToast(「」)就能夠成功調用原生方法。咱們能夠經過它來複制信息,獲取點擊事件等。(shwoToast是原生方法名,android是咱們在addJavascriptInterface方法中本身定義的名字)。android

相關文章
相關標籤/搜索