Open yangbo5207 opened 7 years ago
首先引入一个js文件
// handler.js /** * @author meiliujun <meiliujun@myhexin.com> * @date 14-7-21 * @desc webview和客户端交互协议 * @eg callNativeHandler( * 'photoforIDcard', * '{"action":"photograph"}', * function(data){ * alert(data); * }); */ //调用客户端api function callNativeHandler(action, data, callback) { if (window.WebViewJavascriptBridge) { if( typeof callback !== 'undefined' ){ window.WebViewJavascriptBridge.callHandler(action, data, callback); } else{ window.WebViewJavascriptBridge.callHandler(action, data); } } else{ document.addEventListener( 'WebViewJavascriptBridgeReady', function() { if( typeof callback !== 'undefined' ){ window.WebViewJavascriptBridge.callHandler(action, data, callback); } else{ window.WebViewJavascriptBridge.callHandler(action, data); } }, false ); } } //定义WEB API供给客户端使用 handlername为客户端调用web 函数的协议名字 callfunction参数为一个函数,他有两个参数msgdata和callbackfunction function registerWebHandler(handlername,callfunction) { if(window.WebViewJavascriptBridge) { window.WebViewJavascriptBridge.registerHandler(handlername, callfunction); } else{ document.addEventListener( 'WebViewJavascriptBridgeReady', function() { window.WebViewJavascriptBridge.registerHandler(handlername, callfunction); }, false ); } } //定义默认事件函数 /* function initWebViewJavascriptBridge(message, responseCallback){ var data = { 'Javascript Responds':'Unsupported!' }; responseCallback(data); responseCallback(message); } */ //初始化 连接桥函数定义 function connectWebViewJavascriptBridge() { if (window.WebViewJavascriptBridge) { window.WebViewJavascriptBridge.init( initWebViewJavascriptBridge ); } else { document.addEventListener( 'WebViewJavascriptBridgeReady', function() { window.WebViewJavascriptBridge.init( initWebViewJavascriptBridge ); }, false ); } } //设置默认协议处理函数为console.log if(typeof initWebViewJavascriptBridge != 'function' ){ function initWebViewJavascriptBridge(message, responseCallback){ console.log('message:'+message); console.log('callback:'+responseCallback); } } //初始化webviewbridge connectWebViewJavascriptBridge();
使用方式
var param = { type: "1", title: "share msg", content: "share intro", bmpRes: "0", bmpUrl: "", actionKey: "mobile_share_seq_key", url: "shareurl" } param = JSON.stringify(param) callNativeHandler("hexinShare", param, function() {})
字段含义:
[type] => 分享类型 1分享网页,2分享图片,3分享APP(目前不支持) 必须项 [title] => 标题或者话题 必须项 [content] => 内容或者文案 必须项 [url] => 分享网页URL地址 如果分享网页(1)和App类型(3),则必须项 [bmpRes] => 图片来源 1来自网络,2 来自客户端截图,3来自客户端默认图片,必须项 [bmpUrl] => 图片url地址,如果分享为网络图片(1),则必须项 [actionKey] => 分享内容key,用于客户端统计,一般为后台生成的活动id如mobile_share_1,必须项 可选字段 {platforms:[qq,qqzone,weixin,friends,weibo]} 没有的时候全部分享平台可用,有的时候 仅有包含的平台可以分享
举例: {"type":"1","url":"file:///C:/Users/Administrator/Desktop/share/sharepage.html","content":" 活动内容","title":"活动标题","actionKey":"1"}
首先引入一个js文件
使用方式
字段含义:
[type] => 分享类型 1分享网页,2分享图片,3分享APP(目前不支持) 必须项 [title] => 标题或者话题 必须项 [content] => 内容或者文案 必须项 [url] => 分享网页URL地址 如果分享网页(1)和App类型(3),则必须项 [bmpRes] => 图片来源 1来自网络,2 来自客户端截图,3来自客户端默认图片,必须项 [bmpUrl] => 图片url地址,如果分享为网络图片(1),则必须项 [actionKey] => 分享内容key,用于客户端统计,一般为后台生成的活动id如mobile_share_1,必须项 可选字段 {platforms:[qq,qqzone,weixin,friends,weibo]} 没有的时候全部分享平台可用,有的时候 仅有包含的平台可以分享
举例: {"type":"1","url":"file:///C:/Users/Administrator/Desktop/share/sharepage.html","content":" 活动内容","title":"活动标题","actionKey":"1"}