在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的時候調用它即可。