標籤:yqi 設定 這一 控制項 extend java toast post setting
Webview是用來與前端互動的紐,可以載入本地Html檔案,和網頁並實現互動的功能。
WebView通過WebSetting可以使用Android原生的JavascriptInterface來進行js和java的通訊。
載入本地檔案:webView.loadUrl("file:///android_asset/xxx.html");
載入網頁:webView.loadUrl("http://baidu.com");
案例:(WebView載入本地Html並實現與JS通訊) :
代碼:
/*** * * WebView載入本地檔案和實現JS點擊效果 * * @author zq * */public class MainActivity extends Activity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { // TODO Auto-generated method stub // 擷取webview控制項 webView = (WebView) findViewById(R.id.activity_webview); // 擷取WebView的設定 WebSettings webSettings = webView.getSettings(); // 將JavaScript設定為可用,這一句話是必須的,不然所做一切都是徒勞的 webSettings.setJavaScriptEnabled(true); // 給webview添加JavaScript介面 webView.addJavascriptInterface(new JsInterface(), "control"); // 通過webview載入html頁面 webView.loadUrl("file:///android_asset/l.html"); } public class JsInterface { @JavascriptInterface public void showToast(String toast) { Toast.makeText(MainActivity.this, toast, Toast.LENGTH_SHORT).show(); } public void log(final String msg) { webView.post(new Runnable() { @Override public void run() { webView.loadUrl("javascript log(" + "‘" + msg + "‘" + ")"); } }); } }}
JS檔案
function showToast(toast) { javascript:control.showToast(toast); } function log(msg) { consolse.log(msg); }
AndroidManifest.xml 中加許可權
<uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
代碼未完全給出,要源碼直接下載即可
源碼下載:http://download.csdn.net/detail/dickyqie/9710928
WebView載入本地Html檔案並實現點擊效果