項目中需要使用android與js的混編來開發app。
下面就介紹一下吧。
有時候我們需要用js調用native控件,要想實現這個功能,我們需要做的就只有三步:
1.允許webview執行js腳本
2.向js暴露方法
3.訪問網頁
下面是代碼部分:
java:
1 package com.bdyx.founder.jsnativedemo; 2 3 import android.os.Bundle; 4 import android.support.v7.app.AppCompatActivity; 5 import android.webkit.JavascriptInterface; 6 import android.webkit.WebView; 7 import android.widget.Toast; 8 9 public class MainActivity extends AppCompatActivity { 10 private WebView webView; 11 @Override 12 protected void onCreate(Bundle savedInstanceState) { 13 super.onCreate(savedInstanceState); 14 setContentView(R.layout.activity_main); 15 webView = (WebView) findViewById(R.id.wv); 16 setWebView(); 17 } 18 private void setWebView(){ 19 //允許JavaScript執行 20 webView.getSettings().setJavaScriptEnabled(true); 21 //向js傳遞對象 22 webView.addJavascriptInterface(new ShowToast(),"toastandroid"); 23 //不會node的小伙伴可以保存到assets 24 //webView.loadUrl("file:///android_asset/index.html"); 25 //訪問網頁 26 webView.loadUrl("http://192.168.253.1:8000/"); 27 } 28 public final class ShowToast { 29 //Html調用此方法傳遞數據,注解一定要留着否則會出錯 30 @JavascriptInterface 31 public void show() { 32 Toast.makeText(MainActivity.this,"調用",Toast.LENGTH_LONG).show(); 33 } 34 } 35 }
html:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>weifengzz</title> <script type="text/javascript"> function showToast() { window.toastandroid.show(); } </script> </head> <body> <h1>本例子是點擊按鈕調用android代碼</h1> <input type="button" name="" value="點擊調用" onclick="javascript:showToast()"/> </body> </html>

其實就是這么簡單!
項目已經傳到github上了
