android与webview相互调用
java
中调用javascript
javascript
调用 java
方法
public class MainActivity extends AppCompatActivity {
private WebView webview;
private LinearLayout activity_main;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
webview.setWebChromeClient(new WebChromeClient(){
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
return super.onJsAlert(view, url, message, result);
}
});
webview.getSettings().setJavaScriptEnabled(true);
//添加调用Javascript接口方法 类的方法需要加上注解
//参数一:调用接口 类的实例
//参数二:与后段定义的 协议 onclick="window.and.openC()"
webview.addJavascriptInterface(new HEHE(),"and");
webview.loadUrl("file:///android_asset/web.html");
}
public void onclick(View view) {
//调用 html的代码
webview.loadUrl("javascript:open()");
}
private void initView() {
webview = (WebView) findViewById(R.id.webview);
activity_main = (LinearLayout) findViewById(R.id.activity_main);
}
public class HEHE{ //提供给html代码调用
@JavascriptInterface
public void openC(){
startActivity(new Intent(MediaStore.ACTION_IMAGE_CAPTURE));
}
}
}