@wwanghee
2015-12-23T05:22:48.000000Z
字数 2680
阅读 955
qw库在下一阶段准备逐步废弃,WONDER把其中最重要的mqq接口注册部分提取出来,暂时保留qw的命名空间。
后续可以考虑合并到qt库中的某处,业务方只调用代码即可。
该代码依赖mqq。
(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);}})(window.qw || (window.qw = {}));
(function(){function updateFaceAddon(params, callback) {qw.bridge.request('faceAddon', 'updateFaceAddon', params, callback);}function bubbleSetup(params, callback) {qw.bridge.request('bubble', 'setup', params, callback);}qw.bridge.register('qw.faceAddon.updateFaceAddon', updateFaceAddon, '4.7.0');qw.bridge.register('qw.bubble.setup', bubbleSetup, '4.6.0');})()
URL:
http://imgcache.qq.com/club/themes/mobile/test/interface/bubble_headPendant_setup.html
手Q中扫码二维码:

附件: