import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
private WebView wView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wView = (WebView) findViewById(R.id.webview);
// 打開本包內asset目錄下的index.html文件
wView.loadUrl(" file:///android_asset/test.html ");
wView.getSettings().setJavaScriptEnabled(true);
wView.addJavascriptInterface(new JavaScriptinterface(this), "android");
wView.setWebViewClient(new WebViewClient());
// 打開本地sd卡內的index.html文件
// wView.loadUrl("content://com.android.htmlfileprovider/sdcard/test.html");
// 打開指定URL的html文件
// wView.loadUrl(" http://m.oschina.net");
}
}
package com.example.htmelinterface;
import android.webkit.JavascriptInterface;
public class JavaScriptinterface {
private MainActivity mainActivity;
public JavaScriptinterface(MainActivity mainActivity) {
this.mainActivity = mainActivity;
}
/**
* 與js交互時用到的方法,在js裏直接調用的
*/
@JavascriptInterface
public void backHome() {
mainActivity.finish();
}
}
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function backHome() {
android.backHome();
}
</script>
</head>
<body>
<input type="button" value="調用" onClick="backHome()"/>
</body>
</html>
#----------begin js交互防混淆------------
-keepattributes JavascriptInterface
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
-keepclassmembers class webview的類路徑$AppAndroid{
<fields>;
<methods>;
public *;
}
-keepattributes JavascriptInterface
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
-keepclassmembers class webview的類路徑$AppAndroid{
<fields>;
<methods>;
public *;
}
源碼下載地址 http://download.csdn.net/detail/anroidyanyou/9675338