@wwanghee
2016-07-11T08:32:28.000000Z
字数 2770
阅读 671
1、依赖zepto和mqq
2、引入封装代码
(function(exports) {exports.util = {type: type};exports.bridge = {request: request,register: register};var _toString = Object.prototype.toString;function type(obj) {return obj === null ? "null" : obj === undefined ? "undefined" : _toString.call(obj).slice(8, -1).toLowerCase();}function request(ns, methodName, data, callback, deleteOnExec, execOnNewThread) {var _json, _callbackName = '',_arguments = [ns, methodName];// 获取参数对象if (exports.util.type(data) === 'object') {_json = JSON.stringify(data);_json = JSON.parse(_json);} else if (exports.util.type(data) === 'function') {callback = data;deleteOnExec = callback;execOnNewThread = deleteOnExec;}// 若有回调函数,就获取回调函数名称if (exports.util.type(callback) === 'function') {if (exports.util.type(deleteOnExec) === 'boolean' && exports.util.type(execOnNewThread) === 'boolean') {_callbackName = mqq.callback(callback, deleteOnExec, execOnNewThread)} else {_callbackName = mqq.callback(callback);}_json = _json || {};_json.callback = _callbackName;}_json && _arguments.push(_json);/*** 1、request(ns, methodName) 不处理,直接调用 invoke* 2、request(ns, methodName, data) 不处理,直接调用 invoke* 3、request(ns, methodName, callback) 创建 data,并生成 callbackName,修改 arguments 后调用 invoke* 4、request(ns, methodName, callback, deleteOnExec, execOnNewThread) 创建 data,并生成 callbackName,修改 arguments 后调用 invoke* 5、request(ns, methodName, data, callback) 处理 data,并生成 callbackName,修改 arguments 后调用 invoke* 6、request(ns, methodName, data, callback, deleteOnExec, execOnNewThread) 处理 data,并生成 callbackName,修改 arguments 后调用 invoke*/mqq.invoke.apply(mqq, _arguments);}function register(snAndModuleAndMethod, fn, iOSVersion, androidVersion) {if (exports.util.type(snAndModuleAndMethod) !== 'string') {throw new TypeError('参数类型错误:snAndModuleAndMethod 参数必须为字符串类型!');}var _buildObj;// 接口不支持 iOSif (iOSVersion === 'no') {_buildObj = {android: fn,support: {android: androidVersion}}}// 接口不支持 androidelse if (androidVersion === 'no') {_buildObj = {iOS: fn,support: {iOS: iOSVersion}}}// 都支持else {_buildObj = {iOS: fn,android: fn,support: {iOS: iOSVersion,android: exports.util.type(androidVersion) === 'undefined' ? iOSVersion : androidVersion // 两个平台支持的版本相同时,androidVersion 可能是 undefined}}}mqq.build(snAndModuleAndMethod, _buildObj);}function updateFaceAddon(params, callback) {qw.bridge.request('faceAddon', 'updateFaceAddon', params, callback);}function bubbleSetup(params, callback) {qw.bridge.request('bubble', 'setup', params, callback);}exports.bridge.register('qw.faceAddon.updateFaceAddon', updateFaceAddon, '4.7.0');exports.bridge.register('qw.bubble.setup', bubbleSetup, '4.6.0');})(window.qw || (window.qw = {}));
3、调用代码
//终端设置气泡接口qw.bubble.setup({id: 60 //气泡ID}, function(data) {if(data && data.code == 0){//成功回调alert('设置气泡成功!');}});//终端设置挂件接口qw.faceAddon.updateFaceAddon({id: 4 //挂件ID}, function(data) {if(data && data.code == 0){//成功回调alert('设置挂件成功!');}});
URL:
http://imgcache.qq.com/club/themes/mobile/test/setup.html
二维码:

源代码: