直接从项目里复制了一份关于WebViewJavascriptBridge使用的代码,注释部分是自己暂时的理解。孟哥说,callHandler类似于jq里的trigger,
registerHandler类似于jq的bind。暂时先这样理解,应该找本移动Web的书看看了。
function showMonthPicker(date) {
var data = {
timestamp: +date
};
window.connectWebViewJavascriptBridge && connectWebViewJavascriptBridge(function(bridge) {
bridge.callHandler('showMonthPicker', data, function() { });
// callHandler函数有三个参数,第一个参数是一个函数名,此函数名可看成APP内置的,
// 通过callHandler可以让APP执行showMonthPicker函数,并对showMonthPicker函数传入后面两个参数(data与fun)
});
} function setMonthPicker(timestamp) {
vm.$set('selectedDate', timestamp);
} window.connectWebViewJavascriptBridge && connectWebViewJavascriptBridge(function(bridge) {
bridge.registerHandler("setMonthPicker", function(data, responseCallback) {
// registerHandler函数有2个参数,第一个参数是一个函数名,此函数名是JS在APP上注册的,第二个参数是注册的函数名的函数体
// APP执行setMonthPicker时,是让JS执行了函数体里的内容,函数体的参数是通过APP执行setMonthPicker(data,responseCallback)时传给JS的。
var json = JSON.parse(data);
setMonthPicker(json.timestamp);
});
});