Android中webview和js的交互
在app中我们有时候会用到网页,直接在webview中打开即可,但是有时候需要点击网页的某个按钮,然后调起手机相册,进行图片的上传,这时候我们需要和网页端制定一个协议,触发这个协议的时候就交给app端进行处理,把执行完的的结果回调给网页端。
下面拿调起app端手机相册的例子做说明
这里的 openCamera 就是定义的方法,index是网页端传给我们的参数
在app端这样使用
//调用相机相册
webView.registerHandler("openCamera", new WVJBWebView.WVJBHandler() {
@Override
public void handler(Object o, WVJBWebView.WVJBResponseCallback wvjbResponseCallback) {
wvjbResponseCallbackPicture = wvjbResponseCallback;
String response = o.toString();
try {
JSONObject obj = new JSONObject(response);
//接收参数-注意参数是以json的格式传给我们的
int index = obj.getString("index");
//TODO:在这里做你要做的事情
} catch (JSONException e) {
e.printStackTrace();
new SingleCameraOrPhotoDialog((Activity) getContext()).show();
}
}
});
把这个方法定一个在一个方法里,然后在初始化webview的时候调用它即可。