From a73edd5ff17de128af3fb180759d60d831f1c229 Mon Sep 17 00:00:00 2001 From: shengyonggen Date: Wed, 28 Jul 2021 19:07:58 +0800 Subject: [PATCH 01/13] Release 0.0.3 --- CHANGELOG.md | 5 +++++ package.json | 4 ++-- quick/abtest.esm.min.js | 1 + wechat/abtest.cmd.min.js | 1 + wechat/abtest.esm.min.js | 1 + 5 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 quick/abtest.esm.min.js create mode 100644 wechat/abtest.cmd.min.js create mode 100644 wechat/abtest.esm.min.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 2248c8f..4d5adf7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 0.0.3(2021-07-28) + +1. 新增 + - 新增快应用 `A/B Testing SDK` + ## 0.0.2(2021-04-26) 1. 修复 diff --git a/package.json b/package.json index 42060e8..ea4f8ff 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "ab-sdk-miniprogram", - "version": "0.0.2", - "description": "神策微信小程序 A/B Testing SDk", + "version": "0.0.3", + "description": "神策小程序 A/B Testing SDk", "main": "", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", diff --git a/quick/abtest.esm.min.js b/quick/abtest.esm.min.js new file mode 100644 index 0000000..3775642 --- /dev/null +++ b/quick/abtest.esm.min.js @@ -0,0 +1 @@ +import device from"@system.device";import storage from"@system.storage";import fetch from"@system.fetch";function extend(e){return each(Array.prototype.slice.call(arguments,1),function(t){for(var a in t)void 0!==t[a]&&(e[a]=t[a])}),e}function each(e,t,a){var r=Array.prototype.forEach,i={};if(null==e)return!1;if(r&&e.forEach===r)e.forEach(t,a);else if(e.length===+e.length){for(var s=0,n=e.length;s0||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",t.param_name),r=!1);break;case"value_type":_.isString(t.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",t.value_type),r=!1);break;case"default_value":void 0===t.default_value?(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),r=!1):verifyStore.valueType(t.default_value,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",t.default_value,t.value_type),r=!1);break;case"callback":_.isFunction(t.callback)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),r=!1)}}),r}};function initAPI(e){e.setPara=function(t){if(!_.isString(t.url)||"http"!==t.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;e.para.url=t.url;var a=_.getQueryParam(t.url,"project-key");return a?(e.para.project_key=a,_.isNumber(t.timeout_milliseconds)&&(t.timeout_milliseconds<200?e.para.timeout_milliseconds=200:e.para.timeout_milliseconds=t.timeout_milliseconds),_.isNumber(t.update_interval)&&(e.para.update_interval=t.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},e.asyncFetchABTest=function(t){return _.isObject(t)?!!verifyStore.para("asyncFetchABTest",t,["param_name","value_type","default_value","callback"])&&(_.validTimeout(t),void e.asyncFetch(t)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},e.fastFetchABTest=function(t){if(!_.isObject(t))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",t,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(t);var a=e.searchLocalExp(t.param_name);if(_.isObject(a)){var r=e.getExpResult(t,a);t.callback(r)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),e.asyncFetch(t)},e.fetchCacheABTest=function(t){if(_.isObject(t))return!!verifyStore.para("fetchCacheABTest",t,["param_name","value_type","default_value"])&&e.getExpResult(t);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},e.asyncFetch=function(t){e.getResultFromServer({para:t,suc:function(a){if(_.isObject(a)&&"SUCCESS"===a.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",a),e.updateData(a.results);var r=e.getExpResult(t);t.callback(r)}else t.callback(t.default_value)},fail:function(e){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",e),t.callback(t.default_value)}})},e.searchLocalExp=function(t){return!!e.state.test_list[t]&&e.state.test_list[t]},e.getExpResult=function(t,a){var r=t.default_value,i=a||e.searchLocalExp(t.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===t.value_type?(r=i.config.value,e.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+t.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+t.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+t.param_name),r},e.getResultFromServer=function(t){var a=(t=_.isObject(t)?t:{}).para||{},r=t.suc,i=t.fail,s=e.creatRequestData(a);e.request({url:e.para.url,method:"POST",data:JSON.stringify(s),contentType:"application/json",timeout:a.timeout_milliseconds||e.para.timeout_milliseconds,suc:r,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={lib_version:"0.0.3",platform:"QuickApp",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"quickapp_abtesting"},props={$manufacturer:"",$model:"",$brand:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[],store_inited:!1,fetch_queue:[]};function mixinConfig(e){e.para=para,e.info=info,e.state=state,e.props=props}function mixinTrack(e){e.trackTestTrigger=function(t){var a=!1,r=!1;if(t.is_white_list)return!1;if(e.state.trigger_list.length>0&&(a=!0),-1!==e.state.trigger_list.indexOf(t.abtest_experiment_id)&&(r=!0),!r){var i={$abtest_experiment_id:t.abtest_experiment_id,$abtest_experiment_group_id:t.abtest_experiment_group_id};if(!a){var s=e.info.lib_plugin_name+":"+e.info.lib_version;i.$lib_plugin_version=[s]}e.state.trigger_list.push(t.abtest_experiment_id),e._sa.track("$ABTestTrigger",i)}}}var request=function(e){var t=e.url,a="GET",r=null;e.method&&(a=e.method),e.data&&(r=e.data),fetch.fetch({data:r,responseType:"Object",method:a,url:t,success:function(t){var a={};if(t.data)try{a=JSON.parse(t.data)}catch(e){a={}}e.suc(a)},fail:e.fail})};function mixinRequest(e){e.request=request}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),initAPI(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(e,t){return _.isObject(t.app)?t.app.sensorsABTest=ABTest:_.log("\u8bf7\u4f20\u5165\u6b63\u786e\u7684 App \u5bf9\u8c61\uff01"),_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),!this.state.inited&&(!!this.setPara(t)&&(this.state.inited=!0,this._sa=e,this.subId=new e.eventSub(this.handleEvents),this.subId.isReady(),void getStorage(ABTest.info.storage_key,ABTest.getTestList)))},ABTest.handleEvents=function(e){if("changeDistinctId"===e&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest()),"initStore"===e){if(ABTest.state.store_inited)return!1;ABTest.state.store_inited=!0,_.getSystemInfo(ABTest,ABTest.fetchTest),ABTest.state.fetch_queue.length>0&&_.each(ABTest.state.fetch_queue,function(e){ABTest[e.event].apply(ABTest,e.arg)})}},ABTest.getTestList=function(e){_.isObject(e)?ABTest.state.test_list=e:ABTest.state.test_list={}},_.each(["fetchTest","asyncFetch"],function(e){var t=ABTest[e];ABTest[e]=function(){ABTest.state.store_inited?t.apply(ABTest,arguments):ABTest.state.fetch_queue.push({event:e,arg:arguments})}});export default ABTest; \ No newline at end of file diff --git a/wechat/abtest.cmd.min.js b/wechat/abtest.cmd.min.js new file mode 100644 index 0000000..541265a --- /dev/null +++ b/wechat/abtest.cmd.min.js @@ -0,0 +1 @@ +"use strict";function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var i=Array.prototype.forEach,a={};if(null==t)return!1;if(i&&t.forEach===i)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.3",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{r=e.getStorageSync(t)}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(t,r){var i;try{i=JSON.stringify(r)}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}try{e.setStorageSync(t,i)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,i="GET",a=null;t.method&&(i=t.method),t.data&&(a=t.data),r.request({url:e,method:i,data:a,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,i=t.creatRequestData();function a(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(i),timeout:t.para.timeout_milliseconds,suc:a,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),i=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),i=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),i=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),i=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),i=!1)}}),i}};function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var i=t.getExpResult(e,r);e.callback(i)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var i=t.getExpResult(e);e.callback(i)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var i=e.default_value,a=r||t.searchLocalExp(e.param_name);return _.isObject(a)?_.isObject(a.config)&&(a.config.type===e.value_type?(i=a.config.value,t.trackTestTrigger(a)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+a.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),i},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},i=e.suc,a=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:i,fail:a}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,i=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(i=!0),!i){var a={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;a.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",a)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),initAPI(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},module.exports=ABTest; \ No newline at end of file diff --git a/wechat/abtest.esm.min.js b/wechat/abtest.esm.min.js new file mode 100644 index 0000000..265aca2 --- /dev/null +++ b/wechat/abtest.esm.min.js @@ -0,0 +1 @@ +function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var a=Array.prototype.forEach,i={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.3",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{r=e.getStorageSync(t)}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(t,r){var a;try{a=JSON.stringify(r)}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}try{e.setStorageSync(t,a)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,a="GET",i=null;t.method&&(a=t.method),t.data&&(i=t.data),r.request({url:e,method:a,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,a=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var a=t.getExpResult(e,r);e.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var a=e.default_value,i=r||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(a=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},a=e.suc,i=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),initAPI(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()};export default ABTest; \ No newline at end of file From 610994805141c382eaa0b088af507ec8106f2346 Mon Sep 17 00:00:00 2001 From: shengyonggen Date: Wed, 28 Jul 2021 19:37:20 +0800 Subject: [PATCH 02/13] Release 0.0.3 --- quickapp/abtest.esm.min.js | 1 + 1 file changed, 1 insertion(+) create mode 100644 quickapp/abtest.esm.min.js diff --git a/quickapp/abtest.esm.min.js b/quickapp/abtest.esm.min.js new file mode 100644 index 0000000..3775642 --- /dev/null +++ b/quickapp/abtest.esm.min.js @@ -0,0 +1 @@ +import device from"@system.device";import storage from"@system.storage";import fetch from"@system.fetch";function extend(e){return each(Array.prototype.slice.call(arguments,1),function(t){for(var a in t)void 0!==t[a]&&(e[a]=t[a])}),e}function each(e,t,a){var r=Array.prototype.forEach,i={};if(null==e)return!1;if(r&&e.forEach===r)e.forEach(t,a);else if(e.length===+e.length){for(var s=0,n=e.length;s0||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",t.param_name),r=!1);break;case"value_type":_.isString(t.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",t.value_type),r=!1);break;case"default_value":void 0===t.default_value?(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),r=!1):verifyStore.valueType(t.default_value,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",t.default_value,t.value_type),r=!1);break;case"callback":_.isFunction(t.callback)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),r=!1)}}),r}};function initAPI(e){e.setPara=function(t){if(!_.isString(t.url)||"http"!==t.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;e.para.url=t.url;var a=_.getQueryParam(t.url,"project-key");return a?(e.para.project_key=a,_.isNumber(t.timeout_milliseconds)&&(t.timeout_milliseconds<200?e.para.timeout_milliseconds=200:e.para.timeout_milliseconds=t.timeout_milliseconds),_.isNumber(t.update_interval)&&(e.para.update_interval=t.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},e.asyncFetchABTest=function(t){return _.isObject(t)?!!verifyStore.para("asyncFetchABTest",t,["param_name","value_type","default_value","callback"])&&(_.validTimeout(t),void e.asyncFetch(t)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},e.fastFetchABTest=function(t){if(!_.isObject(t))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",t,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(t);var a=e.searchLocalExp(t.param_name);if(_.isObject(a)){var r=e.getExpResult(t,a);t.callback(r)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),e.asyncFetch(t)},e.fetchCacheABTest=function(t){if(_.isObject(t))return!!verifyStore.para("fetchCacheABTest",t,["param_name","value_type","default_value"])&&e.getExpResult(t);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},e.asyncFetch=function(t){e.getResultFromServer({para:t,suc:function(a){if(_.isObject(a)&&"SUCCESS"===a.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",a),e.updateData(a.results);var r=e.getExpResult(t);t.callback(r)}else t.callback(t.default_value)},fail:function(e){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",e),t.callback(t.default_value)}})},e.searchLocalExp=function(t){return!!e.state.test_list[t]&&e.state.test_list[t]},e.getExpResult=function(t,a){var r=t.default_value,i=a||e.searchLocalExp(t.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===t.value_type?(r=i.config.value,e.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+t.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+t.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+t.param_name),r},e.getResultFromServer=function(t){var a=(t=_.isObject(t)?t:{}).para||{},r=t.suc,i=t.fail,s=e.creatRequestData(a);e.request({url:e.para.url,method:"POST",data:JSON.stringify(s),contentType:"application/json",timeout:a.timeout_milliseconds||e.para.timeout_milliseconds,suc:r,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={lib_version:"0.0.3",platform:"QuickApp",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"quickapp_abtesting"},props={$manufacturer:"",$model:"",$brand:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[],store_inited:!1,fetch_queue:[]};function mixinConfig(e){e.para=para,e.info=info,e.state=state,e.props=props}function mixinTrack(e){e.trackTestTrigger=function(t){var a=!1,r=!1;if(t.is_white_list)return!1;if(e.state.trigger_list.length>0&&(a=!0),-1!==e.state.trigger_list.indexOf(t.abtest_experiment_id)&&(r=!0),!r){var i={$abtest_experiment_id:t.abtest_experiment_id,$abtest_experiment_group_id:t.abtest_experiment_group_id};if(!a){var s=e.info.lib_plugin_name+":"+e.info.lib_version;i.$lib_plugin_version=[s]}e.state.trigger_list.push(t.abtest_experiment_id),e._sa.track("$ABTestTrigger",i)}}}var request=function(e){var t=e.url,a="GET",r=null;e.method&&(a=e.method),e.data&&(r=e.data),fetch.fetch({data:r,responseType:"Object",method:a,url:t,success:function(t){var a={};if(t.data)try{a=JSON.parse(t.data)}catch(e){a={}}e.suc(a)},fail:e.fail})};function mixinRequest(e){e.request=request}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),initAPI(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(e,t){return _.isObject(t.app)?t.app.sensorsABTest=ABTest:_.log("\u8bf7\u4f20\u5165\u6b63\u786e\u7684 App \u5bf9\u8c61\uff01"),_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),!this.state.inited&&(!!this.setPara(t)&&(this.state.inited=!0,this._sa=e,this.subId=new e.eventSub(this.handleEvents),this.subId.isReady(),void getStorage(ABTest.info.storage_key,ABTest.getTestList)))},ABTest.handleEvents=function(e){if("changeDistinctId"===e&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest()),"initStore"===e){if(ABTest.state.store_inited)return!1;ABTest.state.store_inited=!0,_.getSystemInfo(ABTest,ABTest.fetchTest),ABTest.state.fetch_queue.length>0&&_.each(ABTest.state.fetch_queue,function(e){ABTest[e.event].apply(ABTest,e.arg)})}},ABTest.getTestList=function(e){_.isObject(e)?ABTest.state.test_list=e:ABTest.state.test_list={}},_.each(["fetchTest","asyncFetch"],function(e){var t=ABTest[e];ABTest[e]=function(){ABTest.state.store_inited?t.apply(ABTest,arguments):ABTest.state.fetch_queue.push({event:e,arg:arguments})}});export default ABTest; \ No newline at end of file From 0608bfc0880b5e875d111836aa7722fc29f117f2 Mon Sep 17 00:00:00 2001 From: shengyonggen Date: Thu, 30 Sep 2021 15:37:56 +0800 Subject: [PATCH 03/13] Release 0.0.4 --- CHANGELOG.md | 5 +++++ abtest.cmd.min.js | 1 - abtest.esm.min.js | 1 - package.json | 2 +- quick/abtest.esm.min.js | 1 - quickapp/abtest.esm.min.js | 2 +- wechat/abtest.cmd.min.js | 2 +- wechat/abtest.esm.min.js | 2 +- 8 files changed, 9 insertions(+), 7 deletions(-) delete mode 100644 abtest.cmd.min.js delete mode 100644 abtest.esm.min.js delete mode 100644 quick/abtest.esm.min.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d5adf7..42a2ce1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 0.0.4(2021-09-30) + +1. 优化 + - `fastFetchABTest` 接口请求优化 + ## 0.0.3(2021-07-28) 1. 新增 diff --git a/abtest.cmd.min.js b/abtest.cmd.min.js deleted file mode 100644 index 7eb3180..0000000 --- a/abtest.cmd.min.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";var _={extend:function(t){var e=Array.prototype.slice;return _.each(e.call(arguments,1),function(e){for(var a in e)void 0!==e[a]&&(t[a]=e[a])}),t},each:function(t,e,a){var r=Array.prototype.forEach,i={};if(null==t)return!1;if(r&&t.forEach===r)t.forEach(e,a);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){_.log("\u83b7\u53d6\u7cfb\u7edf\u4fe1\u606f\u5931\u8d25\uff01")}},_.validTimeout=function(t){return t.timeout_milliseconds&&_.isNumber(t.timeout_milliseconds)||(t.timeout_milliseconds=3e3),t.timeout_milliseconds<200&&(t.timeout_milliseconds=200),t},_.indexOf=function(t,e){var a=t.indexOf;if(a)return a.call(t,e);for(var r=0;r0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),r=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),r=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),r=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),r=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),r=!1)}}),r}};function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var a=_.getQueryParam(e.url,"project-key");return a?(t.para.project_key=a,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var a=t.searchLocalExp(e.param_name);if(_.isObject(a)){var r=t.getExpResult(e,a);e.callback(r)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(a){if(_.isObject(a)&&"SUCCESS"===a.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",a),t.updateData(a.results);var r=t.getExpResult(e);e.callback(r)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,a){var r=e.default_value,i=a||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(r=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),r},t.getResultFromServer=function(e){var a=(e=_.isObject(e)?e:{}).para||{},r=e.suc,i=e.fail,n=t.creatRequestData(a);request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:a.timeout_milliseconds||t.para.timeout_milliseconds,suc:r,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.2",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest"},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:null,trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinTrack(t){t.trackTestTrigger=function(e){var a=!1,r=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(a=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(r=!0),!r){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!a){var n="miniprogram_abtesting:"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),initAPI(ABTest),mixinTrack(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(!this.setPara(e))return!1;if(this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange),!this.state.test_list){var a=getStorageSync(this.info.storage_key);_.isObject(a)?this.state.test_list=a:this.state.test_list={}}_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},setStorageSync(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},module.exports=ABTest; \ No newline at end of file diff --git a/abtest.esm.min.js b/abtest.esm.min.js deleted file mode 100644 index fa3858b..0000000 --- a/abtest.esm.min.js +++ /dev/null @@ -1 +0,0 @@ -var _={extend:function(t){var e=Array.prototype.slice;return _.each(e.call(arguments,1),function(e){for(var a in e)void 0!==e[a]&&(t[a]=e[a])}),t},each:function(t,e,a){var r=Array.prototype.forEach,i={};if(null==t)return!1;if(r&&t.forEach===r)t.forEach(e,a);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){_.log("\u83b7\u53d6\u7cfb\u7edf\u4fe1\u606f\u5931\u8d25\uff01")}},_.validTimeout=function(t){return t.timeout_milliseconds&&_.isNumber(t.timeout_milliseconds)||(t.timeout_milliseconds=3e3),t.timeout_milliseconds<200&&(t.timeout_milliseconds=200),t},_.indexOf=function(t,e){var a=t.indexOf;if(a)return a.call(t,e);for(var r=0;r0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),r=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),r=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),r=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),r=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),r=!1)}}),r}};function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var a=_.getQueryParam(e.url,"project-key");return a?(t.para.project_key=a,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var a=t.searchLocalExp(e.param_name);if(_.isObject(a)){var r=t.getExpResult(e,a);e.callback(r)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(a){if(_.isObject(a)&&"SUCCESS"===a.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",a),t.updateData(a.results);var r=t.getExpResult(e);e.callback(r)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,a){var r=e.default_value,i=a||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(r=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),r},t.getResultFromServer=function(e){var a=(e=_.isObject(e)?e:{}).para||{},r=e.suc,i=e.fail,n=t.creatRequestData(a);request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:a.timeout_milliseconds||t.para.timeout_milliseconds,suc:r,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.2",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest"},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:null,trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinTrack(t){t.trackTestTrigger=function(e){var a=!1,r=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(a=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(r=!0),!r){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!a){var n="miniprogram_abtesting:"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),initAPI(ABTest),mixinTrack(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(!this.setPara(e))return!1;if(this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange),!this.state.test_list){var a=getStorageSync(this.info.storage_key);_.isObject(a)?this.state.test_list=a:this.state.test_list={}}_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},setStorageSync(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()};export default ABTest; \ No newline at end of file diff --git a/package.json b/package.json index ea4f8ff..3f253e4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ab-sdk-miniprogram", - "version": "0.0.3", + "version": "0.0.4", "description": "神策小程序 A/B Testing SDk", "main": "", "scripts": { diff --git a/quick/abtest.esm.min.js b/quick/abtest.esm.min.js deleted file mode 100644 index 3775642..0000000 --- a/quick/abtest.esm.min.js +++ /dev/null @@ -1 +0,0 @@ -import device from"@system.device";import storage from"@system.storage";import fetch from"@system.fetch";function extend(e){return each(Array.prototype.slice.call(arguments,1),function(t){for(var a in t)void 0!==t[a]&&(e[a]=t[a])}),e}function each(e,t,a){var r=Array.prototype.forEach,i={};if(null==e)return!1;if(r&&e.forEach===r)e.forEach(t,a);else if(e.length===+e.length){for(var s=0,n=e.length;s0||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",t.param_name),r=!1);break;case"value_type":_.isString(t.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",t.value_type),r=!1);break;case"default_value":void 0===t.default_value?(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),r=!1):verifyStore.valueType(t.default_value,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",t.default_value,t.value_type),r=!1);break;case"callback":_.isFunction(t.callback)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),r=!1)}}),r}};function initAPI(e){e.setPara=function(t){if(!_.isString(t.url)||"http"!==t.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;e.para.url=t.url;var a=_.getQueryParam(t.url,"project-key");return a?(e.para.project_key=a,_.isNumber(t.timeout_milliseconds)&&(t.timeout_milliseconds<200?e.para.timeout_milliseconds=200:e.para.timeout_milliseconds=t.timeout_milliseconds),_.isNumber(t.update_interval)&&(e.para.update_interval=t.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},e.asyncFetchABTest=function(t){return _.isObject(t)?!!verifyStore.para("asyncFetchABTest",t,["param_name","value_type","default_value","callback"])&&(_.validTimeout(t),void e.asyncFetch(t)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},e.fastFetchABTest=function(t){if(!_.isObject(t))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",t,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(t);var a=e.searchLocalExp(t.param_name);if(_.isObject(a)){var r=e.getExpResult(t,a);t.callback(r)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),e.asyncFetch(t)},e.fetchCacheABTest=function(t){if(_.isObject(t))return!!verifyStore.para("fetchCacheABTest",t,["param_name","value_type","default_value"])&&e.getExpResult(t);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},e.asyncFetch=function(t){e.getResultFromServer({para:t,suc:function(a){if(_.isObject(a)&&"SUCCESS"===a.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",a),e.updateData(a.results);var r=e.getExpResult(t);t.callback(r)}else t.callback(t.default_value)},fail:function(e){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",e),t.callback(t.default_value)}})},e.searchLocalExp=function(t){return!!e.state.test_list[t]&&e.state.test_list[t]},e.getExpResult=function(t,a){var r=t.default_value,i=a||e.searchLocalExp(t.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===t.value_type?(r=i.config.value,e.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+t.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+t.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+t.param_name),r},e.getResultFromServer=function(t){var a=(t=_.isObject(t)?t:{}).para||{},r=t.suc,i=t.fail,s=e.creatRequestData(a);e.request({url:e.para.url,method:"POST",data:JSON.stringify(s),contentType:"application/json",timeout:a.timeout_milliseconds||e.para.timeout_milliseconds,suc:r,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={lib_version:"0.0.3",platform:"QuickApp",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"quickapp_abtesting"},props={$manufacturer:"",$model:"",$brand:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[],store_inited:!1,fetch_queue:[]};function mixinConfig(e){e.para=para,e.info=info,e.state=state,e.props=props}function mixinTrack(e){e.trackTestTrigger=function(t){var a=!1,r=!1;if(t.is_white_list)return!1;if(e.state.trigger_list.length>0&&(a=!0),-1!==e.state.trigger_list.indexOf(t.abtest_experiment_id)&&(r=!0),!r){var i={$abtest_experiment_id:t.abtest_experiment_id,$abtest_experiment_group_id:t.abtest_experiment_group_id};if(!a){var s=e.info.lib_plugin_name+":"+e.info.lib_version;i.$lib_plugin_version=[s]}e.state.trigger_list.push(t.abtest_experiment_id),e._sa.track("$ABTestTrigger",i)}}}var request=function(e){var t=e.url,a="GET",r=null;e.method&&(a=e.method),e.data&&(r=e.data),fetch.fetch({data:r,responseType:"Object",method:a,url:t,success:function(t){var a={};if(t.data)try{a=JSON.parse(t.data)}catch(e){a={}}e.suc(a)},fail:e.fail})};function mixinRequest(e){e.request=request}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),initAPI(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(e,t){return _.isObject(t.app)?t.app.sensorsABTest=ABTest:_.log("\u8bf7\u4f20\u5165\u6b63\u786e\u7684 App \u5bf9\u8c61\uff01"),_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),!this.state.inited&&(!!this.setPara(t)&&(this.state.inited=!0,this._sa=e,this.subId=new e.eventSub(this.handleEvents),this.subId.isReady(),void getStorage(ABTest.info.storage_key,ABTest.getTestList)))},ABTest.handleEvents=function(e){if("changeDistinctId"===e&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest()),"initStore"===e){if(ABTest.state.store_inited)return!1;ABTest.state.store_inited=!0,_.getSystemInfo(ABTest,ABTest.fetchTest),ABTest.state.fetch_queue.length>0&&_.each(ABTest.state.fetch_queue,function(e){ABTest[e.event].apply(ABTest,e.arg)})}},ABTest.getTestList=function(e){_.isObject(e)?ABTest.state.test_list=e:ABTest.state.test_list={}},_.each(["fetchTest","asyncFetch"],function(e){var t=ABTest[e];ABTest[e]=function(){ABTest.state.store_inited?t.apply(ABTest,arguments):ABTest.state.fetch_queue.push({event:e,arg:arguments})}});export default ABTest; \ No newline at end of file diff --git a/quickapp/abtest.esm.min.js b/quickapp/abtest.esm.min.js index 3775642..a5b2259 100644 --- a/quickapp/abtest.esm.min.js +++ b/quickapp/abtest.esm.min.js @@ -1 +1 @@ -import device from"@system.device";import storage from"@system.storage";import fetch from"@system.fetch";function extend(e){return each(Array.prototype.slice.call(arguments,1),function(t){for(var a in t)void 0!==t[a]&&(e[a]=t[a])}),e}function each(e,t,a){var r=Array.prototype.forEach,i={};if(null==e)return!1;if(r&&e.forEach===r)e.forEach(t,a);else if(e.length===+e.length){for(var s=0,n=e.length;s0||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",t.param_name),r=!1);break;case"value_type":_.isString(t.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",t.value_type),r=!1);break;case"default_value":void 0===t.default_value?(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),r=!1):verifyStore.valueType(t.default_value,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",t.default_value,t.value_type),r=!1);break;case"callback":_.isFunction(t.callback)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),r=!1)}}),r}};function initAPI(e){e.setPara=function(t){if(!_.isString(t.url)||"http"!==t.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;e.para.url=t.url;var a=_.getQueryParam(t.url,"project-key");return a?(e.para.project_key=a,_.isNumber(t.timeout_milliseconds)&&(t.timeout_milliseconds<200?e.para.timeout_milliseconds=200:e.para.timeout_milliseconds=t.timeout_milliseconds),_.isNumber(t.update_interval)&&(e.para.update_interval=t.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},e.asyncFetchABTest=function(t){return _.isObject(t)?!!verifyStore.para("asyncFetchABTest",t,["param_name","value_type","default_value","callback"])&&(_.validTimeout(t),void e.asyncFetch(t)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},e.fastFetchABTest=function(t){if(!_.isObject(t))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",t,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(t);var a=e.searchLocalExp(t.param_name);if(_.isObject(a)){var r=e.getExpResult(t,a);t.callback(r)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),e.asyncFetch(t)},e.fetchCacheABTest=function(t){if(_.isObject(t))return!!verifyStore.para("fetchCacheABTest",t,["param_name","value_type","default_value"])&&e.getExpResult(t);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},e.asyncFetch=function(t){e.getResultFromServer({para:t,suc:function(a){if(_.isObject(a)&&"SUCCESS"===a.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",a),e.updateData(a.results);var r=e.getExpResult(t);t.callback(r)}else t.callback(t.default_value)},fail:function(e){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",e),t.callback(t.default_value)}})},e.searchLocalExp=function(t){return!!e.state.test_list[t]&&e.state.test_list[t]},e.getExpResult=function(t,a){var r=t.default_value,i=a||e.searchLocalExp(t.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===t.value_type?(r=i.config.value,e.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+t.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+t.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+t.param_name),r},e.getResultFromServer=function(t){var a=(t=_.isObject(t)?t:{}).para||{},r=t.suc,i=t.fail,s=e.creatRequestData(a);e.request({url:e.para.url,method:"POST",data:JSON.stringify(s),contentType:"application/json",timeout:a.timeout_milliseconds||e.para.timeout_milliseconds,suc:r,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={lib_version:"0.0.3",platform:"QuickApp",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"quickapp_abtesting"},props={$manufacturer:"",$model:"",$brand:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[],store_inited:!1,fetch_queue:[]};function mixinConfig(e){e.para=para,e.info=info,e.state=state,e.props=props}function mixinTrack(e){e.trackTestTrigger=function(t){var a=!1,r=!1;if(t.is_white_list)return!1;if(e.state.trigger_list.length>0&&(a=!0),-1!==e.state.trigger_list.indexOf(t.abtest_experiment_id)&&(r=!0),!r){var i={$abtest_experiment_id:t.abtest_experiment_id,$abtest_experiment_group_id:t.abtest_experiment_group_id};if(!a){var s=e.info.lib_plugin_name+":"+e.info.lib_version;i.$lib_plugin_version=[s]}e.state.trigger_list.push(t.abtest_experiment_id),e._sa.track("$ABTestTrigger",i)}}}var request=function(e){var t=e.url,a="GET",r=null;e.method&&(a=e.method),e.data&&(r=e.data),fetch.fetch({data:r,responseType:"Object",method:a,url:t,success:function(t){var a={};if(t.data)try{a=JSON.parse(t.data)}catch(e){a={}}e.suc(a)},fail:e.fail})};function mixinRequest(e){e.request=request}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),initAPI(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(e,t){return _.isObject(t.app)?t.app.sensorsABTest=ABTest:_.log("\u8bf7\u4f20\u5165\u6b63\u786e\u7684 App \u5bf9\u8c61\uff01"),_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),!this.state.inited&&(!!this.setPara(t)&&(this.state.inited=!0,this._sa=e,this.subId=new e.eventSub(this.handleEvents),this.subId.isReady(),void getStorage(ABTest.info.storage_key,ABTest.getTestList)))},ABTest.handleEvents=function(e){if("changeDistinctId"===e&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest()),"initStore"===e){if(ABTest.state.store_inited)return!1;ABTest.state.store_inited=!0,_.getSystemInfo(ABTest,ABTest.fetchTest),ABTest.state.fetch_queue.length>0&&_.each(ABTest.state.fetch_queue,function(e){ABTest[e.event].apply(ABTest,e.arg)})}},ABTest.getTestList=function(e){_.isObject(e)?ABTest.state.test_list=e:ABTest.state.test_list={}},_.each(["fetchTest","asyncFetch"],function(e){var t=ABTest[e];ABTest[e]=function(){ABTest.state.store_inited?t.apply(ABTest,arguments):ABTest.state.fetch_queue.push({event:e,arg:arguments})}});export default ABTest; \ No newline at end of file +import device from"@system.device";import storage from"@system.storage";import fetch from"@system.fetch";function extend(e){return each(Array.prototype.slice.call(arguments,1),function(t){for(var a in t)void 0!==t[a]&&(e[a]=t[a])}),e}function each(e,t,a){var i=Array.prototype.forEach,r={};if(null==e)return!1;if(i&&e.forEach===i)e.forEach(t,a);else if(e.length===+e.length){for(var s=0,n=e.length;s0||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",t.param_name),i=!1);break;case"value_type":_.isString(t.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",t.value_type),i=!1);break;case"default_value":void 0===t.default_value?(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),i=!1):verifyStore.valueType(t.default_value,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",t.default_value,t.value_type),i=!1);break;case"callback":_.isFunction(t.callback)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),i=!1)}}),i}};function initAPI(e){e.setPara=function(t){if(!_.isString(t.url)||"http"!==t.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;e.para.url=t.url;var a=_.getQueryParam(t.url,"project-key");return a?(e.para.project_key=a,_.isNumber(t.timeout_milliseconds)&&(t.timeout_milliseconds<200?e.para.timeout_milliseconds=200:e.para.timeout_milliseconds=t.timeout_milliseconds),_.isNumber(t.update_interval)&&(e.para.update_interval=t.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},e.asyncFetchABTest=function(t){return _.isObject(t)?!!verifyStore.para("asyncFetchABTest",t,["param_name","value_type","default_value","callback"])&&(_.validTimeout(t),void e.asyncFetch(t)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},e.fastFetchABTest=function(t){if(!_.isObject(t))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",t,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(t);var a=e.searchLocalExp(t.param_name);if(_.isObject(a)){var i=e.getExpResult(t,a);t.callback(i)}else{Date.now()>e.state.cooling_start_time+e.state.cooling_time?(_.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),e.asyncFetch(t)):(_.log("\u5904\u4e8e\u51b7\u5374\u95f4\u9694\u671f\uff0c\u8fd4\u56de\u9ed8\u8ba4\u503c"),t.callback(t.default_value))}},e.fetchCacheABTest=function(t){if(_.isObject(t))return!!verifyStore.para("fetchCacheABTest",t,["param_name","value_type","default_value"])&&e.getExpResult(t);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},e.asyncFetch=function(t){e.state.cooling_start_time=Date.now(),e.getResultFromServer({para:t,suc:function(a){if(_.isObject(a)&&"SUCCESS"===a.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",a),a.configs&&a.configs.interval_time&&(e.state.cooling_time=a.configs.interval_time),e.updateData(a.results);var i=e.getExpResult(t);t.callback(i)}else t.callback(t.default_value)},fail:function(e){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",e),t.callback(t.default_value)}})},e.searchLocalExp=function(t){return!!e.state.test_list[t]&&e.state.test_list[t]},e.getExpResult=function(t,a){var i=t.default_value,r=a||e.searchLocalExp(t.param_name);return _.isObject(r)?_.isObject(r.config)&&(r.config.type===t.value_type?(i=r.config.value,e.trackTestTrigger(r)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+t.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+r.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+t.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+t.param_name),i},e.getResultFromServer=function(t){var a=(t=_.isObject(t)?t:{}).para||{},i=t.suc,r=t.fail,s=e.creatRequestData(a);e.request({url:e.para.url,method:"POST",data:JSON.stringify(s),contentType:"application/json",timeout:a.timeout_milliseconds||e.para.timeout_milliseconds,suc:i,fail:r}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={lib_version:"0.0.4",platform:"QuickApp",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"quickapp_abtesting"},props={$manufacturer:"",$model:"",$brand:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[],store_inited:!1,fetch_queue:[],cooling_time:600,cooling_start_time:0};function mixinConfig(e){e.para=para,e.info=info,e.state=state,e.props=props}function mixinTrack(e){e.trackTestTrigger=function(t){var a=!1,i=!1;if(t.is_white_list)return!1;if(e.state.trigger_list.length>0&&(a=!0),-1!==e.state.trigger_list.indexOf(t.abtest_experiment_id)&&(i=!0),!i){var r={$abtest_experiment_id:t.abtest_experiment_id,$abtest_experiment_group_id:t.abtest_experiment_group_id};if(!a){var s=e.info.lib_plugin_name+":"+e.info.lib_version;r.$lib_plugin_version=[s]}e.state.trigger_list.push(t.abtest_experiment_id),e._sa.track("$ABTestTrigger",r)}}}var request=function(e){var t=e.url,a="GET",i=null;e.method&&(a=e.method),e.data&&(i=e.data),fetch.fetch({data:i,responseType:"Object",method:a,url:t,success:function(t){var a={};if(t.data)try{a=JSON.parse(t.data)}catch(e){a={}}e.suc(a)},fail:e.fail})};function mixinRequest(e){e.request=request}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),initAPI(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(e,t){return _.isObject(t.app)?t.app.sensorsABTest=ABTest:_.log("\u8bf7\u4f20\u5165\u6b63\u786e\u7684 App \u5bf9\u8c61\uff01"),_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),!this.state.inited&&(!!this.setPara(t)&&(this.state.inited=!0,this._sa=e,this.subId=new e.eventSub(this.handleEvents),this.subId.isReady(),void getStorage(ABTest.info.storage_key,ABTest.getTestList)))},ABTest.handleEvents=function(e){if("changeDistinctId"===e&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest()),"initStore"===e){if(ABTest.state.store_inited)return!1;ABTest.state.store_inited=!0,_.getSystemInfo(ABTest,ABTest.fetchTest),ABTest.state.fetch_queue.length>0&&_.each(ABTest.state.fetch_queue,function(e){ABTest[e.event].apply(ABTest,e.arg)})}},ABTest.getTestList=function(e){_.isObject(e)?ABTest.state.test_list=e:ABTest.state.test_list={}},_.each(["fetchTest","asyncFetch"],function(e){var t=ABTest[e];ABTest[e]=function(){ABTest.state.store_inited?t.apply(ABTest,arguments):ABTest.state.fetch_queue.push({event:e,arg:arguments})}});export default ABTest; \ No newline at end of file diff --git a/wechat/abtest.cmd.min.js b/wechat/abtest.cmd.min.js index 541265a..9da8ce1 100644 --- a/wechat/abtest.cmd.min.js +++ b/wechat/abtest.cmd.min.js @@ -1 +1 @@ -"use strict";function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var i=Array.prototype.forEach,a={};if(null==t)return!1;if(i&&t.forEach===i)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.3",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{r=e.getStorageSync(t)}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(t,r){var i;try{i=JSON.stringify(r)}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}try{e.setStorageSync(t,i)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,i="GET",a=null;t.method&&(i=t.method),t.data&&(a=t.data),r.request({url:e,method:i,data:a,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,i=t.creatRequestData();function a(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(i),timeout:t.para.timeout_milliseconds,suc:a,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),i=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),i=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),i=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),i=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),i=!1)}}),i}};function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var i=t.getExpResult(e,r);e.callback(i)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var i=t.getExpResult(e);e.callback(i)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var i=e.default_value,a=r||t.searchLocalExp(e.param_name);return _.isObject(a)?_.isObject(a.config)&&(a.config.type===e.value_type?(i=a.config.value,t.trackTestTrigger(a)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+a.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),i},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},i=e.suc,a=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:i,fail:a}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,i=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(i=!0),!i){var a={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;a.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",a)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),initAPI(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},module.exports=ABTest; \ No newline at end of file +"use strict";function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var i in e)void 0!==e[i]&&(t[i]=e[i])}),t}function each(t,e,i){var a=Array.prototype.forEach,r={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,i);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.4",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[],cooling_time:600,cooling_start_time:0};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var i="";try{i=e.getStorageSync(t)}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}return isJSONString(i)&&(i=JSON.parse(i)),i},setStorage:function(t,i){var a;try{a=JSON.stringify(i)}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}try{e.setStorageSync(t,a)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,i=t.info.platform_obj;isObject(i)&&(e=function(t){var e=t.url,a="GET",r=null;t.method&&(a=t.method),t.data&&(r=t.data),i.request({url:e,method:a,data:r,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,i=!1,a=t.creatRequestData();function r(e){_.isObject(e)&&"SUCCESS"===e.status?(_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),e.configs&&e.configs.interval_time&&(t.state.cooling_time=e.configs.interval_time),t.updateData(e.results)):_.log("\u62c9\u53d6\u5b9e\u9a8c\u6570\u636e\u5f02\u5e38: ",e),i=!0,t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:r,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!i&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var i=_.getQueryParam(e.url,"project-key");return i?(t.para.project_key=i,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var i=t.searchLocalExp(e.param_name);if(_.isObject(i)){var a=t.getExpResult(e,i);e.callback(a)}else{Date.now()>t.state.cooling_start_time+t.state.cooling_time?(_.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)):(_.log("\u5904\u4e8e\u51b7\u5374\u95f4\u9694\u671f\uff0c\u8fd4\u56de\u9ed8\u8ba4\u503c"),e.callback(e.default_value))}},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.state.cooling_start_time=Date.now(),t.getResultFromServer({para:e,suc:function(i){if(_.isObject(i)&&"SUCCESS"===i.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",i),i.configs&&i.configs.interval_time&&(t.state.cooling_time=i.configs.interval_time),t.updateData(i.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,i){var a=e.default_value,r=i||t.searchLocalExp(e.param_name);return _.isObject(r)?_.isObject(r.config)&&(r.config.type===e.value_type?(a=r.config.value,t.trackTestTrigger(r)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+r.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var i=(e=_.isObject(e)?e:{}).para||{},a=e.suc,r=e.fail,n=t.creatRequestData(i);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:i.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:r}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var i=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(i=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var r={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!i){var n=t.info.lib_plugin_name+":"+t.info.lib_version;r.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",r)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),initAPI(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var i=ABTest.store.getStorage(this.info.storage_key);_.isObject(i)?this.state.test_list=i:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},module.exports=ABTest; \ No newline at end of file diff --git a/wechat/abtest.esm.min.js b/wechat/abtest.esm.min.js index 265aca2..4047807 100644 --- a/wechat/abtest.esm.min.js +++ b/wechat/abtest.esm.min.js @@ -1 +1 @@ -function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var a=Array.prototype.forEach,i={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.3",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{r=e.getStorageSync(t)}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(t,r){var a;try{a=JSON.stringify(r)}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}try{e.setStorageSync(t,a)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,a="GET",i=null;t.method&&(a=t.method),t.data&&(i=t.data),r.request({url:e,method:a,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,a=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var a=t.getExpResult(e,r);e.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var a=e.default_value,i=r||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(a=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},a=e.suc,i=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),initAPI(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()};export default ABTest; \ No newline at end of file +function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var i in e)void 0!==e[i]&&(t[i]=e[i])}),t}function each(t,e,i){var a=Array.prototype.forEach,r={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,i);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.4",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[],cooling_time:600,cooling_start_time:0};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var i="";try{i=e.getStorageSync(t)}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}return isJSONString(i)&&(i=JSON.parse(i)),i},setStorage:function(t,i){var a;try{a=JSON.stringify(i)}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}try{e.setStorageSync(t,a)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,i=t.info.platform_obj;isObject(i)&&(e=function(t){var e=t.url,a="GET",r=null;t.method&&(a=t.method),t.data&&(r=t.data),i.request({url:e,method:a,data:r,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,i=!1,a=t.creatRequestData();function r(e){_.isObject(e)&&"SUCCESS"===e.status?(_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),e.configs&&e.configs.interval_time&&(t.state.cooling_time=e.configs.interval_time),t.updateData(e.results)):_.log("\u62c9\u53d6\u5b9e\u9a8c\u6570\u636e\u5f02\u5e38: ",e),i=!0,t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:r,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!i&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var i=_.getQueryParam(e.url,"project-key");return i?(t.para.project_key=i,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var i=t.searchLocalExp(e.param_name);if(_.isObject(i)){var a=t.getExpResult(e,i);e.callback(a)}else{Date.now()>t.state.cooling_start_time+t.state.cooling_time?(_.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)):(_.log("\u5904\u4e8e\u51b7\u5374\u95f4\u9694\u671f\uff0c\u8fd4\u56de\u9ed8\u8ba4\u503c"),e.callback(e.default_value))}},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.state.cooling_start_time=Date.now(),t.getResultFromServer({para:e,suc:function(i){if(_.isObject(i)&&"SUCCESS"===i.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",i),i.configs&&i.configs.interval_time&&(t.state.cooling_time=i.configs.interval_time),t.updateData(i.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,i){var a=e.default_value,r=i||t.searchLocalExp(e.param_name);return _.isObject(r)?_.isObject(r.config)&&(r.config.type===e.value_type?(a=r.config.value,t.trackTestTrigger(r)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+r.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var i=(e=_.isObject(e)?e:{}).para||{},a=e.suc,r=e.fail,n=t.creatRequestData(i);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:i.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:r}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var i=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(i=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var r={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!i){var n=t.info.lib_plugin_name+":"+t.info.lib_version;r.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",r)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),initAPI(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var i=ABTest.store.getStorage(this.info.storage_key);_.isObject(i)?this.state.test_list=i:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()};export default ABTest; \ No newline at end of file From 688ea4ed5728ea0c484afb09c3b5cbb13d0425fa Mon Sep 17 00:00:00 2001 From: shengyonggen Date: Wed, 9 Feb 2022 17:15:40 +0800 Subject: [PATCH 04/13] Release 0.0.5 --- CHANGELOG.md | 6 ++++++ package.json | 2 +- quickapp/abtest.esm.min.js | 2 +- wechat/abtest.cmd.min.js | 2 +- wechat/abtest.esm.min.js | 2 +- 5 files changed, 10 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42a2ce1..0cb496e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.0.5(2022-2-9) + +1. 修复 + - 修复在开发者工具上真机调试模式异常问题 + + ## 0.0.4(2021-09-30) 1. 优化 diff --git a/package.json b/package.json index 3f253e4..6d4dbe2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ab-sdk-miniprogram", - "version": "0.0.4", + "version": "0.0.5", "description": "神策小程序 A/B Testing SDk", "main": "", "scripts": { diff --git a/quickapp/abtest.esm.min.js b/quickapp/abtest.esm.min.js index a5b2259..6a3e249 100644 --- a/quickapp/abtest.esm.min.js +++ b/quickapp/abtest.esm.min.js @@ -1 +1 @@ -import device from"@system.device";import storage from"@system.storage";import fetch from"@system.fetch";function extend(e){return each(Array.prototype.slice.call(arguments,1),function(t){for(var a in t)void 0!==t[a]&&(e[a]=t[a])}),e}function each(e,t,a){var i=Array.prototype.forEach,r={};if(null==e)return!1;if(i&&e.forEach===i)e.forEach(t,a);else if(e.length===+e.length){for(var s=0,n=e.length;s0||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",t.param_name),i=!1);break;case"value_type":_.isString(t.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",t.value_type),i=!1);break;case"default_value":void 0===t.default_value?(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),i=!1):verifyStore.valueType(t.default_value,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",t.default_value,t.value_type),i=!1);break;case"callback":_.isFunction(t.callback)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),i=!1)}}),i}};function initAPI(e){e.setPara=function(t){if(!_.isString(t.url)||"http"!==t.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;e.para.url=t.url;var a=_.getQueryParam(t.url,"project-key");return a?(e.para.project_key=a,_.isNumber(t.timeout_milliseconds)&&(t.timeout_milliseconds<200?e.para.timeout_milliseconds=200:e.para.timeout_milliseconds=t.timeout_milliseconds),_.isNumber(t.update_interval)&&(e.para.update_interval=t.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},e.asyncFetchABTest=function(t){return _.isObject(t)?!!verifyStore.para("asyncFetchABTest",t,["param_name","value_type","default_value","callback"])&&(_.validTimeout(t),void e.asyncFetch(t)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},e.fastFetchABTest=function(t){if(!_.isObject(t))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",t,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(t);var a=e.searchLocalExp(t.param_name);if(_.isObject(a)){var i=e.getExpResult(t,a);t.callback(i)}else{Date.now()>e.state.cooling_start_time+e.state.cooling_time?(_.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),e.asyncFetch(t)):(_.log("\u5904\u4e8e\u51b7\u5374\u95f4\u9694\u671f\uff0c\u8fd4\u56de\u9ed8\u8ba4\u503c"),t.callback(t.default_value))}},e.fetchCacheABTest=function(t){if(_.isObject(t))return!!verifyStore.para("fetchCacheABTest",t,["param_name","value_type","default_value"])&&e.getExpResult(t);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},e.asyncFetch=function(t){e.state.cooling_start_time=Date.now(),e.getResultFromServer({para:t,suc:function(a){if(_.isObject(a)&&"SUCCESS"===a.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",a),a.configs&&a.configs.interval_time&&(e.state.cooling_time=a.configs.interval_time),e.updateData(a.results);var i=e.getExpResult(t);t.callback(i)}else t.callback(t.default_value)},fail:function(e){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",e),t.callback(t.default_value)}})},e.searchLocalExp=function(t){return!!e.state.test_list[t]&&e.state.test_list[t]},e.getExpResult=function(t,a){var i=t.default_value,r=a||e.searchLocalExp(t.param_name);return _.isObject(r)?_.isObject(r.config)&&(r.config.type===t.value_type?(i=r.config.value,e.trackTestTrigger(r)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+t.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+r.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+t.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+t.param_name),i},e.getResultFromServer=function(t){var a=(t=_.isObject(t)?t:{}).para||{},i=t.suc,r=t.fail,s=e.creatRequestData(a);e.request({url:e.para.url,method:"POST",data:JSON.stringify(s),contentType:"application/json",timeout:a.timeout_milliseconds||e.para.timeout_milliseconds,suc:i,fail:r}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={lib_version:"0.0.4",platform:"QuickApp",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"quickapp_abtesting"},props={$manufacturer:"",$model:"",$brand:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[],store_inited:!1,fetch_queue:[],cooling_time:600,cooling_start_time:0};function mixinConfig(e){e.para=para,e.info=info,e.state=state,e.props=props}function mixinTrack(e){e.trackTestTrigger=function(t){var a=!1,i=!1;if(t.is_white_list)return!1;if(e.state.trigger_list.length>0&&(a=!0),-1!==e.state.trigger_list.indexOf(t.abtest_experiment_id)&&(i=!0),!i){var r={$abtest_experiment_id:t.abtest_experiment_id,$abtest_experiment_group_id:t.abtest_experiment_group_id};if(!a){var s=e.info.lib_plugin_name+":"+e.info.lib_version;r.$lib_plugin_version=[s]}e.state.trigger_list.push(t.abtest_experiment_id),e._sa.track("$ABTestTrigger",r)}}}var request=function(e){var t=e.url,a="GET",i=null;e.method&&(a=e.method),e.data&&(i=e.data),fetch.fetch({data:i,responseType:"Object",method:a,url:t,success:function(t){var a={};if(t.data)try{a=JSON.parse(t.data)}catch(e){a={}}e.suc(a)},fail:e.fail})};function mixinRequest(e){e.request=request}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),initAPI(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(e,t){return _.isObject(t.app)?t.app.sensorsABTest=ABTest:_.log("\u8bf7\u4f20\u5165\u6b63\u786e\u7684 App \u5bf9\u8c61\uff01"),_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),!this.state.inited&&(!!this.setPara(t)&&(this.state.inited=!0,this._sa=e,this.subId=new e.eventSub(this.handleEvents),this.subId.isReady(),void getStorage(ABTest.info.storage_key,ABTest.getTestList)))},ABTest.handleEvents=function(e){if("changeDistinctId"===e&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest()),"initStore"===e){if(ABTest.state.store_inited)return!1;ABTest.state.store_inited=!0,_.getSystemInfo(ABTest,ABTest.fetchTest),ABTest.state.fetch_queue.length>0&&_.each(ABTest.state.fetch_queue,function(e){ABTest[e.event].apply(ABTest,e.arg)})}},ABTest.getTestList=function(e){_.isObject(e)?ABTest.state.test_list=e:ABTest.state.test_list={}},_.each(["fetchTest","asyncFetch"],function(e){var t=ABTest[e];ABTest[e]=function(){ABTest.state.store_inited?t.apply(ABTest,arguments):ABTest.state.fetch_queue.push({event:e,arg:arguments})}});export default ABTest; \ No newline at end of file +import device from"@system.device";import storage from"@system.storage";import fetch from"@system.fetch";var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(e){return each(Array.prototype.slice.call(arguments,1),function(t){for(var a in t)void 0!==t[a]&&(e[a]=t[a])}),e}function each(e,t,a){var r=Array.prototype.forEach,i={};if(null==e)return!1;if(r&&e.forEach===r)e.forEach(t,a);else if(e.length===+e.length){for(var s=0,n=e.length;s0||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",t.param_name),r=!1);break;case"value_type":_.isString(t.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",t.value_type),r=!1);break;case"default_value":void 0===t.default_value?(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),r=!1):verifyStore.valueType(t.default_value,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",t.default_value,t.value_type),r=!1);break;case"callback":_.isFunction(t.callback)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),r=!1)}}),r}};function initAPI(e){e.setPara=function(t){if(!_.isString(t.url)||"http"!==t.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;e.para.url=t.url;var a=_.getQueryParam(t.url,"project-key");return a?(e.para.project_key=a,_.isNumber(t.timeout_milliseconds)&&(t.timeout_milliseconds<200?e.para.timeout_milliseconds=200:e.para.timeout_milliseconds=t.timeout_milliseconds),_.isNumber(t.update_interval)&&(e.para.update_interval=t.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},e.asyncFetchABTest=function(t){return _.isObject(t)?!!verifyStore.para("asyncFetchABTest",t,["param_name","value_type","default_value","callback"])&&(_.validTimeout(t),void e.asyncFetch(t)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},e.fastFetchABTest=function(t){if(!_.isObject(t))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",t,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(t);var a=e.searchLocalExp(t.param_name);if(_.isObject(a)){var r=e.getExpResult(t,a);t.callback(r)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),e.asyncFetch(t)},e.fetchCacheABTest=function(t){if(_.isObject(t))return!!verifyStore.para("fetchCacheABTest",t,["param_name","value_type","default_value"])&&e.getExpResult(t);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},e.asyncFetch=function(t){e.getResultFromServer({para:t,suc:function(a){if(_.isObject(a)&&"SUCCESS"===a.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",a),e.updateData(a.results);var r=e.getExpResult(t);t.callback(r)}else t.callback(t.default_value)},fail:function(e){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",e),t.callback(t.default_value)}})},e.searchLocalExp=function(t){return!!e.state.test_list[t]&&e.state.test_list[t]},e.getExpResult=function(t,a){var r=t.default_value,i=a||e.searchLocalExp(t.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===t.value_type?(r=i.config.value,e.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+t.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+t.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+t.param_name),r},e.getResultFromServer=function(t){var a=(t=_.isObject(t)?t:{}).para||{},r=t.suc,i=t.fail,s=e.creatRequestData(a);e.request({url:e.para.url,method:"POST",data:JSON.stringify(s),contentType:"application/json",timeout:a.timeout_milliseconds||e.para.timeout_milliseconds,suc:r,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={lib_version:"0.0.5",platform:"QuickApp",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"quickapp_abtesting"},props={$manufacturer:"",$model:"",$brand:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[],store_inited:!1,fetch_queue:[]};function mixinConfig(e){e.para=para,e.info=info,e.state=state,e.props=props}function mixinTrack(e){e.trackTestTrigger=function(t){var a=!1,r=!1;if(t.is_white_list)return!1;if(e.state.trigger_list.length>0&&(a=!0),-1!==e.state.trigger_list.indexOf(t.abtest_experiment_id)&&(r=!0),!r){var i={$abtest_experiment_id:t.abtest_experiment_id,$abtest_experiment_group_id:t.abtest_experiment_group_id};if(!a){var s=e.info.lib_plugin_name+":"+e.info.lib_version;i.$lib_plugin_version=[s]}e.state.trigger_list.push(t.abtest_experiment_id),e._sa.track("$ABTestTrigger",i)}}}var request=function(e){var t=e.url,a="GET",r=null;e.method&&(a=e.method),e.data&&(r=e.data),fetch.fetch({data:r,responseType:"Object",method:a,url:t,success:function(t){var a={};if(t.data)try{a=JSON.parse(t.data)}catch(e){a={}}e.suc(a)},fail:e.fail})};function mixinRequest(e){e.request=request}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),initAPI(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(e,t){return _.isObject(t.app)?t.app.sensorsABTest=ABTest:_.log("\u8bf7\u4f20\u5165\u6b63\u786e\u7684 App \u5bf9\u8c61\uff01"),_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),!this.state.inited&&(!!this.setPara(t)&&(this.state.inited=!0,this._sa=e,this.subId=new e.eventSub(this.handleEvents),this.subId.isReady(),void getStorage(ABTest.info.storage_key,ABTest.getTestList)))},ABTest.handleEvents=function(e){if("changeDistinctId"===e&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest()),"initStore"===e){if(ABTest.state.store_inited)return!1;ABTest.state.store_inited=!0,_.getSystemInfo(ABTest,ABTest.fetchTest),ABTest.state.fetch_queue.length>0&&_.each(ABTest.state.fetch_queue,function(e){ABTest[e.event].apply(ABTest,e.arg)})}},ABTest.getTestList=function(e){_.isObject(e)?ABTest.state.test_list=e:ABTest.state.test_list={}},_.each(["fetchTest","asyncFetch"],function(e){var t=ABTest[e];ABTest[e]=function(){ABTest.state.store_inited?t.apply(ABTest,arguments):ABTest.state.fetch_queue.push({event:e,arg:arguments})}});export default ABTest; \ No newline at end of file diff --git a/wechat/abtest.cmd.min.js b/wechat/abtest.cmd.min.js index 9da8ce1..b130a25 100644 --- a/wechat/abtest.cmd.min.js +++ b/wechat/abtest.cmd.min.js @@ -1 +1 @@ -"use strict";function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var i in e)void 0!==e[i]&&(t[i]=e[i])}),t}function each(t,e,i){var a=Array.prototype.forEach,r={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,i);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.4",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[],cooling_time:600,cooling_start_time:0};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var i="";try{i=e.getStorageSync(t)}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}return isJSONString(i)&&(i=JSON.parse(i)),i},setStorage:function(t,i){var a;try{a=JSON.stringify(i)}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}try{e.setStorageSync(t,a)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,i=t.info.platform_obj;isObject(i)&&(e=function(t){var e=t.url,a="GET",r=null;t.method&&(a=t.method),t.data&&(r=t.data),i.request({url:e,method:a,data:r,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,i=!1,a=t.creatRequestData();function r(e){_.isObject(e)&&"SUCCESS"===e.status?(_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),e.configs&&e.configs.interval_time&&(t.state.cooling_time=e.configs.interval_time),t.updateData(e.results)):_.log("\u62c9\u53d6\u5b9e\u9a8c\u6570\u636e\u5f02\u5e38: ",e),i=!0,t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:r,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!i&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var i=_.getQueryParam(e.url,"project-key");return i?(t.para.project_key=i,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var i=t.searchLocalExp(e.param_name);if(_.isObject(i)){var a=t.getExpResult(e,i);e.callback(a)}else{Date.now()>t.state.cooling_start_time+t.state.cooling_time?(_.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)):(_.log("\u5904\u4e8e\u51b7\u5374\u95f4\u9694\u671f\uff0c\u8fd4\u56de\u9ed8\u8ba4\u503c"),e.callback(e.default_value))}},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.state.cooling_start_time=Date.now(),t.getResultFromServer({para:e,suc:function(i){if(_.isObject(i)&&"SUCCESS"===i.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",i),i.configs&&i.configs.interval_time&&(t.state.cooling_time=i.configs.interval_time),t.updateData(i.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,i){var a=e.default_value,r=i||t.searchLocalExp(e.param_name);return _.isObject(r)?_.isObject(r.config)&&(r.config.type===e.value_type?(a=r.config.value,t.trackTestTrigger(r)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+r.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var i=(e=_.isObject(e)?e:{}).para||{},a=e.suc,r=e.fail,n=t.creatRequestData(i);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:i.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:r}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var i=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(i=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var r={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!i){var n=t.info.lib_plugin_name+":"+t.info.lib_version;r.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",r)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),initAPI(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var i=ABTest.store.getStorage(this.info.storage_key);_.isObject(i)?this.state.test_list=i:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},module.exports=ABTest; \ No newline at end of file +"use strict";var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var a=Array.prototype.forEach,i={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.5",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{r=e.getStorageSync(t)}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(t,r){var a;try{a=JSON.stringify(r)}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}try{e.setStorageSync(t,a)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,a="GET",i=null;t.method&&(a=t.method),t.data&&(i=t.data),r.request({url:e,method:a,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,a=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var a=t.getExpResult(e,r);e.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var a=e.default_value,i=r||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(a=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},a=e.suc,i=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),initAPI(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},module.exports=ABTest; \ No newline at end of file diff --git a/wechat/abtest.esm.min.js b/wechat/abtest.esm.min.js index 4047807..edacff7 100644 --- a/wechat/abtest.esm.min.js +++ b/wechat/abtest.esm.min.js @@ -1 +1 @@ -function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var i in e)void 0!==e[i]&&(t[i]=e[i])}),t}function each(t,e,i){var a=Array.prototype.forEach,r={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,i);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.4",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[],cooling_time:600,cooling_start_time:0};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var i="";try{i=e.getStorageSync(t)}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}return isJSONString(i)&&(i=JSON.parse(i)),i},setStorage:function(t,i){var a;try{a=JSON.stringify(i)}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}try{e.setStorageSync(t,a)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,i=t.info.platform_obj;isObject(i)&&(e=function(t){var e=t.url,a="GET",r=null;t.method&&(a=t.method),t.data&&(r=t.data),i.request({url:e,method:a,data:r,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,i=!1,a=t.creatRequestData();function r(e){_.isObject(e)&&"SUCCESS"===e.status?(_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),e.configs&&e.configs.interval_time&&(t.state.cooling_time=e.configs.interval_time),t.updateData(e.results)):_.log("\u62c9\u53d6\u5b9e\u9a8c\u6570\u636e\u5f02\u5e38: ",e),i=!0,t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:r,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!i&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var i=_.getQueryParam(e.url,"project-key");return i?(t.para.project_key=i,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var i=t.searchLocalExp(e.param_name);if(_.isObject(i)){var a=t.getExpResult(e,i);e.callback(a)}else{Date.now()>t.state.cooling_start_time+t.state.cooling_time?(_.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)):(_.log("\u5904\u4e8e\u51b7\u5374\u95f4\u9694\u671f\uff0c\u8fd4\u56de\u9ed8\u8ba4\u503c"),e.callback(e.default_value))}},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.state.cooling_start_time=Date.now(),t.getResultFromServer({para:e,suc:function(i){if(_.isObject(i)&&"SUCCESS"===i.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",i),i.configs&&i.configs.interval_time&&(t.state.cooling_time=i.configs.interval_time),t.updateData(i.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,i){var a=e.default_value,r=i||t.searchLocalExp(e.param_name);return _.isObject(r)?_.isObject(r.config)&&(r.config.type===e.value_type?(a=r.config.value,t.trackTestTrigger(r)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+r.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var i=(e=_.isObject(e)?e:{}).para||{},a=e.suc,r=e.fail,n=t.creatRequestData(i);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:i.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:r}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var i=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(i=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var r={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!i){var n=t.info.lib_plugin_name+":"+t.info.lib_version;r.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",r)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),initAPI(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var i=ABTest.store.getStorage(this.info.storage_key);_.isObject(i)?this.state.test_list=i:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()};export default ABTest; \ No newline at end of file +var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var a=Array.prototype.forEach,i={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.5",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{r=e.getStorageSync(t)}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(t,r){var a;try{a=JSON.stringify(r)}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}try{e.setStorageSync(t,a)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,a="GET",i=null;t.method&&(a=t.method),t.data&&(i=t.data),r.request({url:e,method:a,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,a=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var a=t.getExpResult(e,r);e.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var a=e.default_value,i=r||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(a=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},a=e.suc,i=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),initAPI(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()};export default ABTest; \ No newline at end of file From 6abd8010495a894ac52c5040de2f588101b9a26c Mon Sep 17 00:00:00 2001 From: shengyonggen Date: Mon, 21 Feb 2022 11:44:57 +0800 Subject: [PATCH 05/13] Release 0.0.6 --- CHANGELOG.md | 5 +++++ package.json | 2 +- quickapp/abtest.esm.min.js | 2 +- wechat/abtest.cmd.min.js | 2 +- wechat/abtest.esm.min.js | 2 +- 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0cb496e..f6c8176 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 0.0.6(2022-2-21) + +1. 新增 + - `A/B Testing` 支持延迟初始化 + ## 0.0.5(2022-2-9) 1. 修复 diff --git a/package.json b/package.json index 6d4dbe2..86a97ce 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ab-sdk-miniprogram", - "version": "0.0.5", + "version": "0.0.6", "description": "神策小程序 A/B Testing SDk", "main": "", "scripts": { diff --git a/quickapp/abtest.esm.min.js b/quickapp/abtest.esm.min.js index 6a3e249..0219a5f 100644 --- a/quickapp/abtest.esm.min.js +++ b/quickapp/abtest.esm.min.js @@ -1 +1 @@ -import device from"@system.device";import storage from"@system.storage";import fetch from"@system.fetch";var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(e){return each(Array.prototype.slice.call(arguments,1),function(t){for(var a in t)void 0!==t[a]&&(e[a]=t[a])}),e}function each(e,t,a){var r=Array.prototype.forEach,i={};if(null==e)return!1;if(r&&e.forEach===r)e.forEach(t,a);else if(e.length===+e.length){for(var s=0,n=e.length;s0||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",t.param_name),r=!1);break;case"value_type":_.isString(t.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",t.value_type),r=!1);break;case"default_value":void 0===t.default_value?(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),r=!1):verifyStore.valueType(t.default_value,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",t.default_value,t.value_type),r=!1);break;case"callback":_.isFunction(t.callback)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),r=!1)}}),r}};function initAPI(e){e.setPara=function(t){if(!_.isString(t.url)||"http"!==t.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;e.para.url=t.url;var a=_.getQueryParam(t.url,"project-key");return a?(e.para.project_key=a,_.isNumber(t.timeout_milliseconds)&&(t.timeout_milliseconds<200?e.para.timeout_milliseconds=200:e.para.timeout_milliseconds=t.timeout_milliseconds),_.isNumber(t.update_interval)&&(e.para.update_interval=t.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},e.asyncFetchABTest=function(t){return _.isObject(t)?!!verifyStore.para("asyncFetchABTest",t,["param_name","value_type","default_value","callback"])&&(_.validTimeout(t),void e.asyncFetch(t)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},e.fastFetchABTest=function(t){if(!_.isObject(t))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",t,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(t);var a=e.searchLocalExp(t.param_name);if(_.isObject(a)){var r=e.getExpResult(t,a);t.callback(r)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),e.asyncFetch(t)},e.fetchCacheABTest=function(t){if(_.isObject(t))return!!verifyStore.para("fetchCacheABTest",t,["param_name","value_type","default_value"])&&e.getExpResult(t);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},e.asyncFetch=function(t){e.getResultFromServer({para:t,suc:function(a){if(_.isObject(a)&&"SUCCESS"===a.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",a),e.updateData(a.results);var r=e.getExpResult(t);t.callback(r)}else t.callback(t.default_value)},fail:function(e){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",e),t.callback(t.default_value)}})},e.searchLocalExp=function(t){return!!e.state.test_list[t]&&e.state.test_list[t]},e.getExpResult=function(t,a){var r=t.default_value,i=a||e.searchLocalExp(t.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===t.value_type?(r=i.config.value,e.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+t.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+t.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+t.param_name),r},e.getResultFromServer=function(t){var a=(t=_.isObject(t)?t:{}).para||{},r=t.suc,i=t.fail,s=e.creatRequestData(a);e.request({url:e.para.url,method:"POST",data:JSON.stringify(s),contentType:"application/json",timeout:a.timeout_milliseconds||e.para.timeout_milliseconds,suc:r,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={lib_version:"0.0.5",platform:"QuickApp",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"quickapp_abtesting"},props={$manufacturer:"",$model:"",$brand:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[],store_inited:!1,fetch_queue:[]};function mixinConfig(e){e.para=para,e.info=info,e.state=state,e.props=props}function mixinTrack(e){e.trackTestTrigger=function(t){var a=!1,r=!1;if(t.is_white_list)return!1;if(e.state.trigger_list.length>0&&(a=!0),-1!==e.state.trigger_list.indexOf(t.abtest_experiment_id)&&(r=!0),!r){var i={$abtest_experiment_id:t.abtest_experiment_id,$abtest_experiment_group_id:t.abtest_experiment_group_id};if(!a){var s=e.info.lib_plugin_name+":"+e.info.lib_version;i.$lib_plugin_version=[s]}e.state.trigger_list.push(t.abtest_experiment_id),e._sa.track("$ABTestTrigger",i)}}}var request=function(e){var t=e.url,a="GET",r=null;e.method&&(a=e.method),e.data&&(r=e.data),fetch.fetch({data:r,responseType:"Object",method:a,url:t,success:function(t){var a={};if(t.data)try{a=JSON.parse(t.data)}catch(e){a={}}e.suc(a)},fail:e.fail})};function mixinRequest(e){e.request=request}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),initAPI(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(e,t){return _.isObject(t.app)?t.app.sensorsABTest=ABTest:_.log("\u8bf7\u4f20\u5165\u6b63\u786e\u7684 App \u5bf9\u8c61\uff01"),_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),!this.state.inited&&(!!this.setPara(t)&&(this.state.inited=!0,this._sa=e,this.subId=new e.eventSub(this.handleEvents),this.subId.isReady(),void getStorage(ABTest.info.storage_key,ABTest.getTestList)))},ABTest.handleEvents=function(e){if("changeDistinctId"===e&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest()),"initStore"===e){if(ABTest.state.store_inited)return!1;ABTest.state.store_inited=!0,_.getSystemInfo(ABTest,ABTest.fetchTest),ABTest.state.fetch_queue.length>0&&_.each(ABTest.state.fetch_queue,function(e){ABTest[e.event].apply(ABTest,e.arg)})}},ABTest.getTestList=function(e){_.isObject(e)?ABTest.state.test_list=e:ABTest.state.test_list={}},_.each(["fetchTest","asyncFetch"],function(e){var t=ABTest[e];ABTest[e]=function(){ABTest.state.store_inited?t.apply(ABTest,arguments):ABTest.state.fetch_queue.push({event:e,arg:arguments})}});export default ABTest; \ No newline at end of file +import device from"@system.device";import storage from"@system.storage";import fetch from"@system.fetch";var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(e){return each(Array.prototype.slice.call(arguments,1),function(t){for(var a in t)void 0!==t[a]&&(e[a]=t[a])}),e}function each(e,t,a){var r=Array.prototype.forEach,i={};if(null==e)return!1;if(r&&e.forEach===r)e.forEach(t,a);else if(e.length===+e.length){for(var s=0,n=e.length;s0||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",t.param_name),r=!1);break;case"value_type":_.isString(t.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",t.value_type),r=!1);break;case"default_value":void 0===t.default_value?(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),r=!1):verifyStore.valueType(t.default_value,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",t.default_value,t.value_type),r=!1);break;case"callback":_.isFunction(t.callback)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),r=!1)}}),r}};function defineApi(e,t){for(var a of t)e[a]="fetchCacheABTest"===a?function(e){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),e.hasOwnProperty("default_value"))return e.default_value}:function(e){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),e&&_.isFunction(e.callback)&&e.hasOwnProperty("default_value")&&e.callback(e.default_value)}}function initAPI(e){e.setPara=function(t){if(!_.isString(t.url)||"http"!==t.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;e.para.url=t.url;var a=_.getQueryParam(t.url,"project-key");return a?(e.para.project_key=a,_.isNumber(t.timeout_milliseconds)&&(t.timeout_milliseconds<200?e.para.timeout_milliseconds=200:e.para.timeout_milliseconds=t.timeout_milliseconds),_.isNumber(t.update_interval)&&(e.para.update_interval=t.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},e.asyncFetchABTest=function(t){return _.isObject(t)?!!verifyStore.para("asyncFetchABTest",t,["param_name","value_type","default_value","callback"])&&(_.validTimeout(t),void e.asyncFetch(t)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},e.fastFetchABTest=function(t){if(!_.isObject(t))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",t,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(t);var a=e.searchLocalExp(t.param_name);if(_.isObject(a)){var r=e.getExpResult(t,a);t.callback(r)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),e.asyncFetch(t)},e.fetchCacheABTest=function(t){if(_.isObject(t))return!!verifyStore.para("fetchCacheABTest",t,["param_name","value_type","default_value"])&&e.getExpResult(t);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},e.asyncFetch=function(t){e.getResultFromServer({para:t,suc:function(a){if(_.isObject(a)&&"SUCCESS"===a.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",a),e.updateData(a.results);var r=e.getExpResult(t);t.callback(r)}else t.callback(t.default_value)},fail:function(e){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",e),t.callback(t.default_value)}})},e.searchLocalExp=function(t){return!!e.state.test_list[t]&&e.state.test_list[t]},e.getExpResult=function(t,a){var r=t.default_value,i=a||e.searchLocalExp(t.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===t.value_type?(r=i.config.value,e.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+t.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+t.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+t.param_name),r},e.getResultFromServer=function(t){var a=(t=_.isObject(t)?t:{}).para||{},r=t.suc,i=t.fail,s=e.creatRequestData(a);e.request({url:e.para.url,method:"POST",data:JSON.stringify(s),contentType:"application/json",timeout:a.timeout_milliseconds||e.para.timeout_milliseconds,suc:r,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={lib_version:"0.0.6",platform:"QuickApp",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"quickapp_abtesting"},props={$manufacturer:"",$model:"",$brand:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[],store_inited:!1,fetch_queue:[]};function mixinConfig(e){e.para=para,e.info=info,e.state=state,e.props=props}function mixinTrack(e){e.trackTestTrigger=function(t){var a=!1,r=!1;if(t.is_white_list)return!1;if(e.state.trigger_list.length>0&&(a=!0),-1!==e.state.trigger_list.indexOf(t.abtest_experiment_id)&&(r=!0),!r){var i={$abtest_experiment_id:t.abtest_experiment_id,$abtest_experiment_group_id:t.abtest_experiment_group_id};if(!a){var s=e.info.lib_plugin_name+":"+e.info.lib_version;i.$lib_plugin_version=[s]}e.state.trigger_list.push(t.abtest_experiment_id),e._sa.track("$ABTestTrigger",i)}}}var request=function(e){var t=e.url,a="GET",r=null;e.method&&(a=e.method),e.data&&(r=e.data),fetch.fetch({data:r,responseType:"Object",method:a,url:t,success:function(t){var a={};if(t.data)try{a=JSON.parse(t.data)}catch(e){a={}}e.suc(a)},fail:e.fail})};function mixinRequest(e){e.request=request}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(e,t){return _.isObject(t.app)?t.app.sensorsABTest=ABTest:_.log("\u8bf7\u4f20\u5165\u6b63\u786e\u7684 App \u5bf9\u8c61\uff01"),_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),!this.state.inited&&(initAPI(ABTest),!!this.setPara(t)&&(this.state.inited=!0,this._sa=e,this.subId=new e.eventSub(this.handleEvents),this.subId.isReady(),void getStorage(ABTest.info.storage_key,ABTest.getTestList)))},ABTest.handleEvents=function(e){if("changeDistinctId"===e&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest()),"initStore"===e){if(ABTest.state.store_inited)return!1;ABTest.state.store_inited=!0,_.getSystemInfo(ABTest,ABTest.fetchTest),ABTest.state.fetch_queue.length>0&&_.each(ABTest.state.fetch_queue,function(e){ABTest[e.event].apply(ABTest,e.arg)})}},ABTest.getTestList=function(e){_.isObject(e)?ABTest.state.test_list=e:ABTest.state.test_list={}},_.each(["fetchTest","asyncFetch"],function(e){var t=ABTest[e];ABTest[e]=function(){ABTest.state.store_inited?t.apply(ABTest,arguments):ABTest.state.fetch_queue.push({event:e,arg:arguments})}}),defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]);export default ABTest; \ No newline at end of file diff --git a/wechat/abtest.cmd.min.js b/wechat/abtest.cmd.min.js index b130a25..c934474 100644 --- a/wechat/abtest.cmd.min.js +++ b/wechat/abtest.cmd.min.js @@ -1 +1 @@ -"use strict";var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var a=Array.prototype.forEach,i={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.5",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{r=e.getStorageSync(t)}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(t,r){var a;try{a=JSON.stringify(r)}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}try{e.setStorageSync(t,a)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,a="GET",i=null;t.method&&(a=t.method),t.data&&(i=t.data),r.request({url:e,method:a,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,a=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var a=t.getExpResult(e,r);e.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var a=e.default_value,i=r||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(a=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},a=e.suc,i=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),initAPI(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},module.exports=ABTest; \ No newline at end of file +"use strict";var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var a in e)void 0!==e[a]&&(t[a]=e[a])}),t}function each(t,e,a){var r=Array.prototype.forEach,i={};if(null==t)return!1;if(r&&t.forEach===r)t.forEach(e,a);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.6",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var a="";try{a=e.getStorageSync(t)}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}return isJSONString(a)&&(a=JSON.parse(a)),a},setStorage:function(t,a){var r;try{r=JSON.stringify(a)}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}try{e.setStorageSync(t,r)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,a=t.info.platform_obj;isObject(a)&&(e=function(t){var e=t.url,r="GET",i=null;t.method&&(r=t.method),t.data&&(i=t.data),a.request({url:e,method:r,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,a=!1,r=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),a=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(r),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!a&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),r=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),r=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),r=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),r=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),r=!1)}}),r}};function defineApi(t,e){for(var a of e)t[a]="fetchCacheABTest"===a?function(t){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t.hasOwnProperty("default_value"))return t.default_value}:function(t){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t&&_.isFunction(t.callback)&&t.hasOwnProperty("default_value")&&t.callback(t.default_value)}}function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var a=_.getQueryParam(e.url,"project-key");return a?(t.para.project_key=a,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var a=t.searchLocalExp(e.param_name);if(_.isObject(a)){var r=t.getExpResult(e,a);e.callback(r)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(a){if(_.isObject(a)&&"SUCCESS"===a.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",a),t.updateData(a.results);var r=t.getExpResult(e);e.callback(r)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,a){var r=e.default_value,i=a||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(r=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),r},t.getResultFromServer=function(e){var a=(e=_.isObject(e)?e:{}).para||{},r=e.suc,i=e.fail,n=t.creatRequestData(a);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:a.timeout_milliseconds||t.para.timeout_milliseconds,suc:r,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var a=!1,r=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(a=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(r=!0),!r){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!a){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(initAPI(ABTest),!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var a=ABTest.store.getStorage(this.info.storage_key);_.isObject(a)?this.state.test_list=a:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]),module.exports=ABTest; \ No newline at end of file diff --git a/wechat/abtest.esm.min.js b/wechat/abtest.esm.min.js index edacff7..a88ff9a 100644 --- a/wechat/abtest.esm.min.js +++ b/wechat/abtest.esm.min.js @@ -1 +1 @@ -var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var a=Array.prototype.forEach,i={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.5",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{r=e.getStorageSync(t)}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(t,r){var a;try{a=JSON.stringify(r)}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}try{e.setStorageSync(t,a)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,a="GET",i=null;t.method&&(a=t.method),t.data&&(i=t.data),r.request({url:e,method:a,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,a=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var a=t.getExpResult(e,r);e.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var a=e.default_value,i=r||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(a=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},a=e.suc,i=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),initAPI(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()};export default ABTest; \ No newline at end of file +var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var a in e)void 0!==e[a]&&(t[a]=e[a])}),t}function each(t,e,a){var r=Array.prototype.forEach,i={};if(null==t)return!1;if(r&&t.forEach===r)t.forEach(e,a);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.6",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var a="";try{a=e.getStorageSync(t)}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}return isJSONString(a)&&(a=JSON.parse(a)),a},setStorage:function(t,a){var r;try{r=JSON.stringify(a)}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}try{e.setStorageSync(t,r)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,a=t.info.platform_obj;isObject(a)&&(e=function(t){var e=t.url,r="GET",i=null;t.method&&(r=t.method),t.data&&(i=t.data),a.request({url:e,method:r,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,a=!1,r=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),a=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(r),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!a&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),r=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),r=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),r=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),r=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),r=!1)}}),r}};function defineApi(t,e){for(var a of e)t[a]="fetchCacheABTest"===a?function(t){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t.hasOwnProperty("default_value"))return t.default_value}:function(t){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t&&_.isFunction(t.callback)&&t.hasOwnProperty("default_value")&&t.callback(t.default_value)}}function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var a=_.getQueryParam(e.url,"project-key");return a?(t.para.project_key=a,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var a=t.searchLocalExp(e.param_name);if(_.isObject(a)){var r=t.getExpResult(e,a);e.callback(r)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(a){if(_.isObject(a)&&"SUCCESS"===a.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",a),t.updateData(a.results);var r=t.getExpResult(e);e.callback(r)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,a){var r=e.default_value,i=a||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(r=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),r},t.getResultFromServer=function(e){var a=(e=_.isObject(e)?e:{}).para||{},r=e.suc,i=e.fail,n=t.creatRequestData(a);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:a.timeout_milliseconds||t.para.timeout_milliseconds,suc:r,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var a=!1,r=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(a=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(r=!0),!r){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!a){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(initAPI(ABTest),!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var a=ABTest.store.getStorage(this.info.storage_key);_.isObject(a)?this.state.test_list=a:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]);export default ABTest; \ No newline at end of file From c9579e5a55f8d748cda329f713f2c3e21138dc6c Mon Sep 17 00:00:00 2001 From: shengyonggen Date: Fri, 25 Feb 2022 18:10:53 +0800 Subject: [PATCH 06/13] Release 0.0.7 --- CHANGELOG.md | 5 +++++ package.json | 2 +- quickapp/abtest.esm.min.js | 2 +- wechat/abtest.cmd.min.js | 2 +- wechat/abtest.esm.min.js | 2 +- 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f6c8176..cbbf8b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 0.0.7(2022-2-25) + +1. 新增 + - 支持本地数据存储加密 + ## 0.0.6(2022-2-21) 1. 新增 diff --git a/package.json b/package.json index 86a97ce..96900a0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ab-sdk-miniprogram", - "version": "0.0.6", + "version": "0.0.7", "description": "神策小程序 A/B Testing SDk", "main": "", "scripts": { diff --git a/quickapp/abtest.esm.min.js b/quickapp/abtest.esm.min.js index 0219a5f..1ab92e4 100644 --- a/quickapp/abtest.esm.min.js +++ b/quickapp/abtest.esm.min.js @@ -1 +1 @@ -import device from"@system.device";import storage from"@system.storage";import fetch from"@system.fetch";var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(e){return each(Array.prototype.slice.call(arguments,1),function(t){for(var a in t)void 0!==t[a]&&(e[a]=t[a])}),e}function each(e,t,a){var r=Array.prototype.forEach,i={};if(null==e)return!1;if(r&&e.forEach===r)e.forEach(t,a);else if(e.length===+e.length){for(var s=0,n=e.length;s0||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",t.param_name),r=!1);break;case"value_type":_.isString(t.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",t.value_type),r=!1);break;case"default_value":void 0===t.default_value?(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),r=!1):verifyStore.valueType(t.default_value,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",t.default_value,t.value_type),r=!1);break;case"callback":_.isFunction(t.callback)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),r=!1)}}),r}};function defineApi(e,t){for(var a of t)e[a]="fetchCacheABTest"===a?function(e){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),e.hasOwnProperty("default_value"))return e.default_value}:function(e){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),e&&_.isFunction(e.callback)&&e.hasOwnProperty("default_value")&&e.callback(e.default_value)}}function initAPI(e){e.setPara=function(t){if(!_.isString(t.url)||"http"!==t.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;e.para.url=t.url;var a=_.getQueryParam(t.url,"project-key");return a?(e.para.project_key=a,_.isNumber(t.timeout_milliseconds)&&(t.timeout_milliseconds<200?e.para.timeout_milliseconds=200:e.para.timeout_milliseconds=t.timeout_milliseconds),_.isNumber(t.update_interval)&&(e.para.update_interval=t.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},e.asyncFetchABTest=function(t){return _.isObject(t)?!!verifyStore.para("asyncFetchABTest",t,["param_name","value_type","default_value","callback"])&&(_.validTimeout(t),void e.asyncFetch(t)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},e.fastFetchABTest=function(t){if(!_.isObject(t))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",t,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(t);var a=e.searchLocalExp(t.param_name);if(_.isObject(a)){var r=e.getExpResult(t,a);t.callback(r)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),e.asyncFetch(t)},e.fetchCacheABTest=function(t){if(_.isObject(t))return!!verifyStore.para("fetchCacheABTest",t,["param_name","value_type","default_value"])&&e.getExpResult(t);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},e.asyncFetch=function(t){e.getResultFromServer({para:t,suc:function(a){if(_.isObject(a)&&"SUCCESS"===a.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",a),e.updateData(a.results);var r=e.getExpResult(t);t.callback(r)}else t.callback(t.default_value)},fail:function(e){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",e),t.callback(t.default_value)}})},e.searchLocalExp=function(t){return!!e.state.test_list[t]&&e.state.test_list[t]},e.getExpResult=function(t,a){var r=t.default_value,i=a||e.searchLocalExp(t.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===t.value_type?(r=i.config.value,e.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+t.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+t.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+t.param_name),r},e.getResultFromServer=function(t){var a=(t=_.isObject(t)?t:{}).para||{},r=t.suc,i=t.fail,s=e.creatRequestData(a);e.request({url:e.para.url,method:"POST",data:JSON.stringify(s),contentType:"application/json",timeout:a.timeout_milliseconds||e.para.timeout_milliseconds,suc:r,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={lib_version:"0.0.6",platform:"QuickApp",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"quickapp_abtesting"},props={$manufacturer:"",$model:"",$brand:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[],store_inited:!1,fetch_queue:[]};function mixinConfig(e){e.para=para,e.info=info,e.state=state,e.props=props}function mixinTrack(e){e.trackTestTrigger=function(t){var a=!1,r=!1;if(t.is_white_list)return!1;if(e.state.trigger_list.length>0&&(a=!0),-1!==e.state.trigger_list.indexOf(t.abtest_experiment_id)&&(r=!0),!r){var i={$abtest_experiment_id:t.abtest_experiment_id,$abtest_experiment_group_id:t.abtest_experiment_group_id};if(!a){var s=e.info.lib_plugin_name+":"+e.info.lib_version;i.$lib_plugin_version=[s]}e.state.trigger_list.push(t.abtest_experiment_id),e._sa.track("$ABTestTrigger",i)}}}var request=function(e){var t=e.url,a="GET",r=null;e.method&&(a=e.method),e.data&&(r=e.data),fetch.fetch({data:r,responseType:"Object",method:a,url:t,success:function(t){var a={};if(t.data)try{a=JSON.parse(t.data)}catch(e){a={}}e.suc(a)},fail:e.fail})};function mixinRequest(e){e.request=request}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(e,t){return _.isObject(t.app)?t.app.sensorsABTest=ABTest:_.log("\u8bf7\u4f20\u5165\u6b63\u786e\u7684 App \u5bf9\u8c61\uff01"),_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),!this.state.inited&&(initAPI(ABTest),!!this.setPara(t)&&(this.state.inited=!0,this._sa=e,this.subId=new e.eventSub(this.handleEvents),this.subId.isReady(),void getStorage(ABTest.info.storage_key,ABTest.getTestList)))},ABTest.handleEvents=function(e){if("changeDistinctId"===e&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest()),"initStore"===e){if(ABTest.state.store_inited)return!1;ABTest.state.store_inited=!0,_.getSystemInfo(ABTest,ABTest.fetchTest),ABTest.state.fetch_queue.length>0&&_.each(ABTest.state.fetch_queue,function(e){ABTest[e.event].apply(ABTest,e.arg)})}},ABTest.getTestList=function(e){_.isObject(e)?ABTest.state.test_list=e:ABTest.state.test_list={}},_.each(["fetchTest","asyncFetch"],function(e){var t=ABTest[e];ABTest[e]=function(){ABTest.state.store_inited?t.apply(ABTest,arguments):ABTest.state.fetch_queue.push({event:e,arg:arguments})}}),defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]);export default ABTest; \ No newline at end of file +import device from"@system.device";import storage from"@system.storage";import fetch from"@system.fetch";var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(e){return each(Array.prototype.slice.call(arguments,1),function(t){for(var r in t)void 0!==t[r]&&(e[r]=t[r])}),e}function each(e,t,r){var a=Array.prototype.forEach,i={};if(null==e)return!1;if(a&&e.forEach===a)e.forEach(t,r);else if(e.length===+e.length){for(var s=0,n=e.length;s0||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",t.param_name),a=!1);break;case"value_type":_.isString(t.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",t.value_type),a=!1);break;case"default_value":void 0===t.default_value?(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(t.default_value,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",t.default_value,t.value_type),a=!1);break;case"callback":_.isFunction(t.callback)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function defineApi(e,t){for(var r of t)e[r]="fetchCacheABTest"===r?function(e){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),e.hasOwnProperty("default_value"))return e.default_value}:function(e){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),e&&_.isFunction(e.callback)&&e.hasOwnProperty("default_value")&&e.callback(e.default_value)}}function initAPI(e){e.setPara=function(t){if(!_.isString(t.url)||"http"!==t.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;e.para.url=t.url;var r=_.getQueryParam(t.url,"project-key");return r?(e.para.project_key=r,_.isNumber(t.timeout_milliseconds)&&(t.timeout_milliseconds<200?e.para.timeout_milliseconds=200:e.para.timeout_milliseconds=t.timeout_milliseconds),_.isNumber(t.update_interval)&&(e.para.update_interval=t.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},e.asyncFetchABTest=function(t){return _.isObject(t)?!!verifyStore.para("asyncFetchABTest",t,["param_name","value_type","default_value","callback"])&&(_.validTimeout(t),void e.asyncFetch(t)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},e.fastFetchABTest=function(t){if(!_.isObject(t))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",t,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(t);var r=e.searchLocalExp(t.param_name);if(_.isObject(r)){var a=e.getExpResult(t,r);t.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),e.asyncFetch(t)},e.fetchCacheABTest=function(t){if(_.isObject(t))return!!verifyStore.para("fetchCacheABTest",t,["param_name","value_type","default_value"])&&e.getExpResult(t);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},e.asyncFetch=function(t){e.getResultFromServer({para:t,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),e.updateData(r.results);var a=e.getExpResult(t);t.callback(a)}else t.callback(t.default_value)},fail:function(e){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",e),t.callback(t.default_value)}})},e.searchLocalExp=function(t){return!!e.state.test_list[t]&&e.state.test_list[t]},e.getExpResult=function(t,r){var a=t.default_value,i=r||e.searchLocalExp(t.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===t.value_type?(a=i.config.value,e.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+t.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+t.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+t.param_name),a},e.getResultFromServer=function(t){var r=(t=_.isObject(t)?t:{}).para||{},a=t.suc,i=t.fail,s=e.creatRequestData(r);e.request({url:e.para.url,method:"POST",data:JSON.stringify(s),contentType:"application/json",timeout:r.timeout_milliseconds||e.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={lib_version:"0.0.7",platform:"QuickApp",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"quickapp_abtesting"},props={$manufacturer:"",$model:"",$brand:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[],store_inited:!1,fetch_queue:[]};function mixinConfig(e){e.para=para,e.info=info,e.state=state,e.props=props}function mixinTrack(e){e.trackTestTrigger=function(t){var r=!1,a=!1;if(t.is_white_list)return!1;if(e.state.trigger_list.length>0&&(r=!0),-1!==e.state.trigger_list.indexOf(t.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:t.abtest_experiment_id,$abtest_experiment_group_id:t.abtest_experiment_group_id};if(!r){var s=e.info.lib_plugin_name+":"+e.info.lib_version;i.$lib_plugin_version=[s]}e.state.trigger_list.push(t.abtest_experiment_id),e._sa.track("$ABTestTrigger",i)}}}var request=function(e){var t=e.url,r="GET",a=null;e.method&&(r=e.method),e.data&&(a=e.data),fetch.fetch({data:a,responseType:"Object",method:r,url:t,success:function(t){var r={};if(t.data)try{r=JSON.parse(t.data)}catch(e){r={}}e.suc(r)},fail:e.fail})};function mixinRequest(e){e.request=request}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(e,t){return _.isObject(t.app)?t.app.sensorsABTest=ABTest:_.log("\u8bf7\u4f20\u5165\u6b63\u786e\u7684 App \u5bf9\u8c61\uff01"),_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),!this.state.inited&&(initAPI(ABTest),!!this.setPara(t)&&(this.state.inited=!0,this._sa=e,this.subId=new e.eventSub(this.handleEvents),this.subId.isReady(),void getStorage(ABTest.info.storage_key,ABTest.getTestList)))},ABTest.handleEvents=function(e){if("changeDistinctId"===e&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest()),"initStore"===e){if(ABTest.state.store_inited)return!1;ABTest.state.store_inited=!0,_.getSystemInfo(ABTest,ABTest.fetchTest),ABTest.state.fetch_queue.length>0&&_.each(ABTest.state.fetch_queue,function(e){ABTest[e.event].apply(ABTest,e.arg)})}},ABTest.getTestList=function(e){_.isObject(e)?ABTest.state.test_list=e:ABTest.state.test_list={}},_.each(["fetchTest","asyncFetch"],function(e){var t=ABTest[e];ABTest[e]=function(){ABTest.state.store_inited?t.apply(ABTest,arguments):ABTest.state.fetch_queue.push({event:e,arg:arguments})}}),defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]);export default ABTest; \ No newline at end of file diff --git a/wechat/abtest.cmd.min.js b/wechat/abtest.cmd.min.js index c934474..54aa7d6 100644 --- a/wechat/abtest.cmd.min.js +++ b/wechat/abtest.cmd.min.js @@ -1 +1 @@ -"use strict";var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var a in e)void 0!==e[a]&&(t[a]=e[a])}),t}function each(t,e,a){var r=Array.prototype.forEach,i={};if(null==t)return!1;if(r&&t.forEach===r)t.forEach(e,a);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.6",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var a="";try{a=e.getStorageSync(t)}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}return isJSONString(a)&&(a=JSON.parse(a)),a},setStorage:function(t,a){var r;try{r=JSON.stringify(a)}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}try{e.setStorageSync(t,r)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,a=t.info.platform_obj;isObject(a)&&(e=function(t){var e=t.url,r="GET",i=null;t.method&&(r=t.method),t.data&&(i=t.data),a.request({url:e,method:r,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,a=!1,r=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),a=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(r),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!a&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),r=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),r=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),r=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),r=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),r=!1)}}),r}};function defineApi(t,e){for(var a of e)t[a]="fetchCacheABTest"===a?function(t){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t.hasOwnProperty("default_value"))return t.default_value}:function(t){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t&&_.isFunction(t.callback)&&t.hasOwnProperty("default_value")&&t.callback(t.default_value)}}function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var a=_.getQueryParam(e.url,"project-key");return a?(t.para.project_key=a,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var a=t.searchLocalExp(e.param_name);if(_.isObject(a)){var r=t.getExpResult(e,a);e.callback(r)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(a){if(_.isObject(a)&&"SUCCESS"===a.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",a),t.updateData(a.results);var r=t.getExpResult(e);e.callback(r)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,a){var r=e.default_value,i=a||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(r=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),r},t.getResultFromServer=function(e){var a=(e=_.isObject(e)?e:{}).para||{},r=e.suc,i=e.fail,n=t.creatRequestData(a);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:a.timeout_milliseconds||t.para.timeout_milliseconds,suc:r,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var a=!1,r=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(a=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(r=!0),!r){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!a){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(initAPI(ABTest),!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var a=ABTest.store.getStorage(this.info.storage_key);_.isObject(a)?this.state.test_list=a:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]),module.exports=ABTest; \ No newline at end of file +"use strict";var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var a=Array.prototype.forEach,i={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.7",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{a=r=e.getStorageSync(t),r=isString(a)?(-1!==a.indexOf("data:enc;")&&(a=rot13defs(a=a.substring("data:enc;".length))),a):a}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}var a;return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(r,a){var i;try{n=i=JSON.stringify(a),s=!1,t&&t._sa&&t._sa.para&&(s=t._sa.para.encrypt_storage),s&&(isObject(n)&&(n=JSON.stringify(n)),n="data:enc;"+rot13obfs(n)),i=n}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}var n,s;try{e.setStorageSync(r,i)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,a="GET",i=null;t.method&&(a=t.method),t.data&&(i=t.data),r.request({url:e,method:a,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,a=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function defineApi(t,e){for(var r of e)t[r]="fetchCacheABTest"===r?function(t){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t.hasOwnProperty("default_value"))return t.default_value}:function(t){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t&&_.isFunction(t.callback)&&t.hasOwnProperty("default_value")&&t.callback(t.default_value)}}function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var a=t.getExpResult(e,r);e.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var a=e.default_value,i=r||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(a=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},a=e.suc,i=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(initAPI(ABTest),!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]),module.exports=ABTest; \ No newline at end of file diff --git a/wechat/abtest.esm.min.js b/wechat/abtest.esm.min.js index a88ff9a..7fb119e 100644 --- a/wechat/abtest.esm.min.js +++ b/wechat/abtest.esm.min.js @@ -1 +1 @@ -var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var a in e)void 0!==e[a]&&(t[a]=e[a])}),t}function each(t,e,a){var r=Array.prototype.forEach,i={};if(null==t)return!1;if(r&&t.forEach===r)t.forEach(e,a);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.6",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var a="";try{a=e.getStorageSync(t)}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}return isJSONString(a)&&(a=JSON.parse(a)),a},setStorage:function(t,a){var r;try{r=JSON.stringify(a)}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}try{e.setStorageSync(t,r)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,a=t.info.platform_obj;isObject(a)&&(e=function(t){var e=t.url,r="GET",i=null;t.method&&(r=t.method),t.data&&(i=t.data),a.request({url:e,method:r,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,a=!1,r=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),a=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(r),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!a&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),r=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),r=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),r=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),r=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),r=!1)}}),r}};function defineApi(t,e){for(var a of e)t[a]="fetchCacheABTest"===a?function(t){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t.hasOwnProperty("default_value"))return t.default_value}:function(t){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t&&_.isFunction(t.callback)&&t.hasOwnProperty("default_value")&&t.callback(t.default_value)}}function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var a=_.getQueryParam(e.url,"project-key");return a?(t.para.project_key=a,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var a=t.searchLocalExp(e.param_name);if(_.isObject(a)){var r=t.getExpResult(e,a);e.callback(r)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(a){if(_.isObject(a)&&"SUCCESS"===a.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",a),t.updateData(a.results);var r=t.getExpResult(e);e.callback(r)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,a){var r=e.default_value,i=a||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(r=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),r},t.getResultFromServer=function(e){var a=(e=_.isObject(e)?e:{}).para||{},r=e.suc,i=e.fail,n=t.creatRequestData(a);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:a.timeout_milliseconds||t.para.timeout_milliseconds,suc:r,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var a=!1,r=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(a=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(r=!0),!r){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!a){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(initAPI(ABTest),!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var a=ABTest.store.getStorage(this.info.storage_key);_.isObject(a)?this.state.test_list=a:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]);export default ABTest; \ No newline at end of file +var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var a=Array.prototype.forEach,i={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.7",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{a=r=e.getStorageSync(t),r=isString(a)?(-1!==a.indexOf("data:enc;")&&(a=rot13defs(a=a.substring("data:enc;".length))),a):a}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}var a;return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(r,a){var i;try{n=i=JSON.stringify(a),s=!1,t&&t._sa&&t._sa.para&&(s=t._sa.para.encrypt_storage),s&&(isObject(n)&&(n=JSON.stringify(n)),n="data:enc;"+rot13obfs(n)),i=n}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}var n,s;try{e.setStorageSync(r,i)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,a="GET",i=null;t.method&&(a=t.method),t.data&&(i=t.data),r.request({url:e,method:a,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,a=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function defineApi(t,e){for(var r of e)t[r]="fetchCacheABTest"===r?function(t){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t.hasOwnProperty("default_value"))return t.default_value}:function(t){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t&&_.isFunction(t.callback)&&t.hasOwnProperty("default_value")&&t.callback(t.default_value)}}function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var a=t.getExpResult(e,r);e.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var a=e.default_value,i=r||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(a=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},a=e.suc,i=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(initAPI(ABTest),!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]);export default ABTest; \ No newline at end of file From 42a4471cdbe8f345a32e2a36a9473dc7551456e3 Mon Sep 17 00:00:00 2001 From: shengyonggen Date: Fri, 18 Mar 2022 15:06:50 +0800 Subject: [PATCH 07/13] Release 0.0.8 --- CHANGELOG.md | 7 +++++++ alipay/abtest.cmd.min.js | 1 + alipay/abtest.esm.min.js | 1 + package.json | 2 +- quickapp/abtest.esm.min.js | 2 +- wechat/abtest.cmd.min.js | 2 +- wechat/abtest.esm.min.js | 2 +- 7 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 alipay/abtest.cmd.min.js create mode 100644 alipay/abtest.esm.min.js diff --git a/CHANGELOG.md b/CHANGELOG.md index cbbf8b5..a9c004d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.0.8(2022-3-18) + +1. 新增 + - 新增支付宝 `A/B Testing` (需要支付宝 SDK v1.2.0 及以上版本) + + + ## 0.0.7(2022-2-25) 1. 新增 diff --git a/alipay/abtest.cmd.min.js b/alipay/abtest.cmd.min.js new file mode 100644 index 0000000..ba41df1 --- /dev/null +++ b/alipay/abtest.cmd.min.js @@ -0,0 +1 @@ +"use strict";var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var a=Array.prototype.forEach,i={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(my.getAccountInfoSync&&(t=my.getAppIdSync()),isObject(t))return t.appId||""}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.8",platform:"AlipayMini",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"alipaymini_abtesting",platform_obj:my},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{a=r=e.getStorageSync({key:t}),r=isString(a)?(-1!==a.indexOf("data:enc;")&&(a=rot13defs(a=a.substring("data:enc;".length))),a):a}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}var a;return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(r,a){var i;try{n=i=JSON.stringify(a),s=!1,t&&t._sa&&t._sa.para&&(s=t._sa.para.encrypt_storage),s&&(isObject(n)&&(n=JSON.stringify(n)),n="data:enc;"+rot13obfs(n)),i=n}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}var n,s;try{e.setStorageSync({key:r,data:i})}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,a="GET",i=null;t.method&&(a=t.method),t.data&&(i=t.data),r.request({url:e,method:a,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,a=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function defineApi(t,e){for(var r of e)t[r]="fetchCacheABTest"===r?function(t){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t.hasOwnProperty("default_value"))return t.default_value}:function(t){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t&&_.isFunction(t.callback)&&t.hasOwnProperty("default_value")&&t.callback(t.default_value)}}function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var a=t.getExpResult(e,r);e.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var a=e.default_value,i=r||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(a=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},a=e.suc,i=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(initAPI(ABTest),!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=my.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="ali-"+t.scene),this.fetchTest()},defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]),module.exports=ABTest; \ No newline at end of file diff --git a/alipay/abtest.esm.min.js b/alipay/abtest.esm.min.js new file mode 100644 index 0000000..b1a2b17 --- /dev/null +++ b/alipay/abtest.esm.min.js @@ -0,0 +1 @@ +var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var a in e)void 0!==e[a]&&(t[a]=e[a])}),t}function each(t,e,a){var r=Array.prototype.forEach,i={};if(null==t)return!1;if(r&&t.forEach===r)t.forEach(e,a);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(my.getAccountInfoSync&&(t=my.getAppIdSync()),isObject(t))return t.appId||""}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.8",platform:"AlipayMini",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"alipaymini_abtesting",platform_obj:my},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var a="";try{r=a=e.getStorageSync({key:t}),a=isString(r)?(-1!==r.indexOf("data:enc;")&&(r=rot13defs(r=r.substring("data:enc;".length))),r):r}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}var r;return isJSONString(a)&&(a=JSON.parse(a)),a},setStorage:function(a,r){var i;try{n=i=JSON.stringify(r),s=!1,t&&t._sa&&t._sa.para&&(s=t._sa.para.encrypt_storage),s&&(isObject(n)&&(n=JSON.stringify(n)),n="data:enc;"+rot13obfs(n)),i=n}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}var n,s;try{e.setStorageSync({key:a,data:i})}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,a=t.info.platform_obj;isObject(a)&&(e=function(t){var e=t.url,r="GET",i=null;t.method&&(r=t.method),t.data&&(i=t.data),a.request({url:e,method:r,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,a=!1,r=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),a=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(r),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!a&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),r=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),r=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),r=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),r=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),r=!1)}}),r}};function defineApi(t,e){for(var a of e)t[a]="fetchCacheABTest"===a?function(t){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t.hasOwnProperty("default_value"))return t.default_value}:function(t){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t&&_.isFunction(t.callback)&&t.hasOwnProperty("default_value")&&t.callback(t.default_value)}}function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var a=_.getQueryParam(e.url,"project-key");return a?(t.para.project_key=a,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var a=t.searchLocalExp(e.param_name);if(_.isObject(a)){var r=t.getExpResult(e,a);e.callback(r)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(a){if(_.isObject(a)&&"SUCCESS"===a.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",a),t.updateData(a.results);var r=t.getExpResult(e);e.callback(r)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,a){var r=e.default_value,i=a||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(r=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),r},t.getResultFromServer=function(e){var a=(e=_.isObject(e)?e:{}).para||{},r=e.suc,i=e.fail,n=t.creatRequestData(a);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:a.timeout_milliseconds||t.para.timeout_milliseconds,suc:r,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var a=!1,r=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(a=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(r=!0),!r){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!a){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(initAPI(ABTest),!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var a=ABTest.store.getStorage(this.info.storage_key);_.isObject(a)?this.state.test_list=a:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=my.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="ali-"+t.scene),this.fetchTest()},defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]);export default ABTest; \ No newline at end of file diff --git a/package.json b/package.json index 96900a0..03ef73a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ab-sdk-miniprogram", - "version": "0.0.7", + "version": "0.0.8", "description": "神策小程序 A/B Testing SDk", "main": "", "scripts": { diff --git a/quickapp/abtest.esm.min.js b/quickapp/abtest.esm.min.js index 1ab92e4..6afd89e 100644 --- a/quickapp/abtest.esm.min.js +++ b/quickapp/abtest.esm.min.js @@ -1 +1 @@ -import device from"@system.device";import storage from"@system.storage";import fetch from"@system.fetch";var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(e){return each(Array.prototype.slice.call(arguments,1),function(t){for(var r in t)void 0!==t[r]&&(e[r]=t[r])}),e}function each(e,t,r){var a=Array.prototype.forEach,i={};if(null==e)return!1;if(a&&e.forEach===a)e.forEach(t,r);else if(e.length===+e.length){for(var s=0,n=e.length;s0||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",t.param_name),a=!1);break;case"value_type":_.isString(t.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",t.value_type),a=!1);break;case"default_value":void 0===t.default_value?(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(t.default_value,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",t.default_value,t.value_type),a=!1);break;case"callback":_.isFunction(t.callback)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function defineApi(e,t){for(var r of t)e[r]="fetchCacheABTest"===r?function(e){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),e.hasOwnProperty("default_value"))return e.default_value}:function(e){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),e&&_.isFunction(e.callback)&&e.hasOwnProperty("default_value")&&e.callback(e.default_value)}}function initAPI(e){e.setPara=function(t){if(!_.isString(t.url)||"http"!==t.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;e.para.url=t.url;var r=_.getQueryParam(t.url,"project-key");return r?(e.para.project_key=r,_.isNumber(t.timeout_milliseconds)&&(t.timeout_milliseconds<200?e.para.timeout_milliseconds=200:e.para.timeout_milliseconds=t.timeout_milliseconds),_.isNumber(t.update_interval)&&(e.para.update_interval=t.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},e.asyncFetchABTest=function(t){return _.isObject(t)?!!verifyStore.para("asyncFetchABTest",t,["param_name","value_type","default_value","callback"])&&(_.validTimeout(t),void e.asyncFetch(t)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},e.fastFetchABTest=function(t){if(!_.isObject(t))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",t,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(t);var r=e.searchLocalExp(t.param_name);if(_.isObject(r)){var a=e.getExpResult(t,r);t.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),e.asyncFetch(t)},e.fetchCacheABTest=function(t){if(_.isObject(t))return!!verifyStore.para("fetchCacheABTest",t,["param_name","value_type","default_value"])&&e.getExpResult(t);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},e.asyncFetch=function(t){e.getResultFromServer({para:t,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),e.updateData(r.results);var a=e.getExpResult(t);t.callback(a)}else t.callback(t.default_value)},fail:function(e){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",e),t.callback(t.default_value)}})},e.searchLocalExp=function(t){return!!e.state.test_list[t]&&e.state.test_list[t]},e.getExpResult=function(t,r){var a=t.default_value,i=r||e.searchLocalExp(t.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===t.value_type?(a=i.config.value,e.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+t.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+t.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+t.param_name),a},e.getResultFromServer=function(t){var r=(t=_.isObject(t)?t:{}).para||{},a=t.suc,i=t.fail,s=e.creatRequestData(r);e.request({url:e.para.url,method:"POST",data:JSON.stringify(s),contentType:"application/json",timeout:r.timeout_milliseconds||e.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={lib_version:"0.0.7",platform:"QuickApp",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"quickapp_abtesting"},props={$manufacturer:"",$model:"",$brand:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[],store_inited:!1,fetch_queue:[]};function mixinConfig(e){e.para=para,e.info=info,e.state=state,e.props=props}function mixinTrack(e){e.trackTestTrigger=function(t){var r=!1,a=!1;if(t.is_white_list)return!1;if(e.state.trigger_list.length>0&&(r=!0),-1!==e.state.trigger_list.indexOf(t.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:t.abtest_experiment_id,$abtest_experiment_group_id:t.abtest_experiment_group_id};if(!r){var s=e.info.lib_plugin_name+":"+e.info.lib_version;i.$lib_plugin_version=[s]}e.state.trigger_list.push(t.abtest_experiment_id),e._sa.track("$ABTestTrigger",i)}}}var request=function(e){var t=e.url,r="GET",a=null;e.method&&(r=e.method),e.data&&(a=e.data),fetch.fetch({data:a,responseType:"Object",method:r,url:t,success:function(t){var r={};if(t.data)try{r=JSON.parse(t.data)}catch(e){r={}}e.suc(r)},fail:e.fail})};function mixinRequest(e){e.request=request}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(e,t){return _.isObject(t.app)?t.app.sensorsABTest=ABTest:_.log("\u8bf7\u4f20\u5165\u6b63\u786e\u7684 App \u5bf9\u8c61\uff01"),_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),!this.state.inited&&(initAPI(ABTest),!!this.setPara(t)&&(this.state.inited=!0,this._sa=e,this.subId=new e.eventSub(this.handleEvents),this.subId.isReady(),void getStorage(ABTest.info.storage_key,ABTest.getTestList)))},ABTest.handleEvents=function(e){if("changeDistinctId"===e&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest()),"initStore"===e){if(ABTest.state.store_inited)return!1;ABTest.state.store_inited=!0,_.getSystemInfo(ABTest,ABTest.fetchTest),ABTest.state.fetch_queue.length>0&&_.each(ABTest.state.fetch_queue,function(e){ABTest[e.event].apply(ABTest,e.arg)})}},ABTest.getTestList=function(e){_.isObject(e)?ABTest.state.test_list=e:ABTest.state.test_list={}},_.each(["fetchTest","asyncFetch"],function(e){var t=ABTest[e];ABTest[e]=function(){ABTest.state.store_inited?t.apply(ABTest,arguments):ABTest.state.fetch_queue.push({event:e,arg:arguments})}}),defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]);export default ABTest; \ No newline at end of file +import device from"@system.device";import storage from"@system.storage";import fetch from"@system.fetch";var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(e){return each(Array.prototype.slice.call(arguments,1),function(t){for(var r in t)void 0!==t[r]&&(e[r]=t[r])}),e}function each(e,t,r){var a=Array.prototype.forEach,i={};if(null==e)return!1;if(a&&e.forEach===a)e.forEach(t,r);else if(e.length===+e.length){for(var s=0,n=e.length;s0||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",t.param_name),a=!1);break;case"value_type":_.isString(t.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",t.value_type),a=!1);break;case"default_value":void 0===t.default_value?(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(t.default_value,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",t.default_value,t.value_type),a=!1);break;case"callback":_.isFunction(t.callback)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function defineApi(e,t){for(var r of t)e[r]="fetchCacheABTest"===r?function(e){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),e.hasOwnProperty("default_value"))return e.default_value}:function(e){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),e&&_.isFunction(e.callback)&&e.hasOwnProperty("default_value")&&e.callback(e.default_value)}}function initAPI(e){e.setPara=function(t){if(!_.isString(t.url)||"http"!==t.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;e.para.url=t.url;var r=_.getQueryParam(t.url,"project-key");return r?(e.para.project_key=r,_.isNumber(t.timeout_milliseconds)&&(t.timeout_milliseconds<200?e.para.timeout_milliseconds=200:e.para.timeout_milliseconds=t.timeout_milliseconds),_.isNumber(t.update_interval)&&(e.para.update_interval=t.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},e.asyncFetchABTest=function(t){return _.isObject(t)?!!verifyStore.para("asyncFetchABTest",t,["param_name","value_type","default_value","callback"])&&(_.validTimeout(t),void e.asyncFetch(t)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},e.fastFetchABTest=function(t){if(!_.isObject(t))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",t,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(t);var r=e.searchLocalExp(t.param_name);if(_.isObject(r)){var a=e.getExpResult(t,r);t.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),e.asyncFetch(t)},e.fetchCacheABTest=function(t){if(_.isObject(t))return!!verifyStore.para("fetchCacheABTest",t,["param_name","value_type","default_value"])&&e.getExpResult(t);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},e.asyncFetch=function(t){e.getResultFromServer({para:t,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),e.updateData(r.results);var a=e.getExpResult(t);t.callback(a)}else t.callback(t.default_value)},fail:function(e){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",e),t.callback(t.default_value)}})},e.searchLocalExp=function(t){return!!e.state.test_list[t]&&e.state.test_list[t]},e.getExpResult=function(t,r){var a=t.default_value,i=r||e.searchLocalExp(t.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===t.value_type?(a=i.config.value,e.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+t.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+t.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+t.param_name),a},e.getResultFromServer=function(t){var r=(t=_.isObject(t)?t:{}).para||{},a=t.suc,i=t.fail,s=e.creatRequestData(r);e.request({url:e.para.url,method:"POST",data:JSON.stringify(s),contentType:"application/json",timeout:r.timeout_milliseconds||e.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={lib_version:"0.0.8",platform:"QuickApp",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"quickapp_abtesting"},props={$manufacturer:"",$model:"",$brand:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[],store_inited:!1,fetch_queue:[]};function mixinConfig(e){e.para=para,e.info=info,e.state=state,e.props=props}function mixinTrack(e){e.trackTestTrigger=function(t){var r=!1,a=!1;if(t.is_white_list)return!1;if(e.state.trigger_list.length>0&&(r=!0),-1!==e.state.trigger_list.indexOf(t.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:t.abtest_experiment_id,$abtest_experiment_group_id:t.abtest_experiment_group_id};if(!r){var s=e.info.lib_plugin_name+":"+e.info.lib_version;i.$lib_plugin_version=[s]}e.state.trigger_list.push(t.abtest_experiment_id),e._sa.track("$ABTestTrigger",i)}}}var request=function(e){var t=e.url,r="GET",a=null;e.method&&(r=e.method),e.data&&(a=e.data),fetch.fetch({data:a,responseType:"Object",method:r,url:t,success:function(t){var r={};if(t.data)try{r=JSON.parse(t.data)}catch(e){r={}}e.suc(r)},fail:e.fail})};function mixinRequest(e){e.request=request}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(e,t){return _.isObject(t.app)?t.app.sensorsABTest=ABTest:_.log("\u8bf7\u4f20\u5165\u6b63\u786e\u7684 App \u5bf9\u8c61\uff01"),_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),!this.state.inited&&(initAPI(ABTest),!!this.setPara(t)&&(this.state.inited=!0,this._sa=e,this.subId=new e.eventSub(this.handleEvents),this.subId.isReady(),void getStorage(ABTest.info.storage_key,ABTest.getTestList)))},ABTest.handleEvents=function(e){if("changeDistinctId"===e&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest()),"initStore"===e){if(ABTest.state.store_inited)return!1;ABTest.state.store_inited=!0,_.getSystemInfo(ABTest,ABTest.fetchTest),ABTest.state.fetch_queue.length>0&&_.each(ABTest.state.fetch_queue,function(e){ABTest[e.event].apply(ABTest,e.arg)})}},ABTest.getTestList=function(e){_.isObject(e)?ABTest.state.test_list=e:ABTest.state.test_list={}},_.each(["fetchTest","asyncFetch"],function(e){var t=ABTest[e];ABTest[e]=function(){ABTest.state.store_inited?t.apply(ABTest,arguments):ABTest.state.fetch_queue.push({event:e,arg:arguments})}}),defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]);export default ABTest; \ No newline at end of file diff --git a/wechat/abtest.cmd.min.js b/wechat/abtest.cmd.min.js index 54aa7d6..9b49b5a 100644 --- a/wechat/abtest.cmd.min.js +++ b/wechat/abtest.cmd.min.js @@ -1 +1 @@ -"use strict";var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var a=Array.prototype.forEach,i={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.7",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{a=r=e.getStorageSync(t),r=isString(a)?(-1!==a.indexOf("data:enc;")&&(a=rot13defs(a=a.substring("data:enc;".length))),a):a}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}var a;return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(r,a){var i;try{n=i=JSON.stringify(a),s=!1,t&&t._sa&&t._sa.para&&(s=t._sa.para.encrypt_storage),s&&(isObject(n)&&(n=JSON.stringify(n)),n="data:enc;"+rot13obfs(n)),i=n}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}var n,s;try{e.setStorageSync(r,i)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,a="GET",i=null;t.method&&(a=t.method),t.data&&(i=t.data),r.request({url:e,method:a,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,a=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function defineApi(t,e){for(var r of e)t[r]="fetchCacheABTest"===r?function(t){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t.hasOwnProperty("default_value"))return t.default_value}:function(t){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t&&_.isFunction(t.callback)&&t.hasOwnProperty("default_value")&&t.callback(t.default_value)}}function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var a=t.getExpResult(e,r);e.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var a=e.default_value,i=r||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(a=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},a=e.suc,i=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(initAPI(ABTest),!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]),module.exports=ABTest; \ No newline at end of file +"use strict";var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var a=Array.prototype.forEach,i={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.8",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{a=r=e.getStorageSync(t),r=isString(a)?(-1!==a.indexOf("data:enc;")&&(a=rot13defs(a=a.substring("data:enc;".length))),a):a}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}var a;return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(r,a){var i;try{n=i=JSON.stringify(a),s=!1,t&&t._sa&&t._sa.para&&(s=t._sa.para.encrypt_storage),s&&(isObject(n)&&(n=JSON.stringify(n)),n="data:enc;"+rot13obfs(n)),i=n}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}var n,s;try{e.setStorageSync(r,i)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,a="GET",i=null;t.method&&(a=t.method),t.data&&(i=t.data),r.request({url:e,method:a,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,a=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function defineApi(t,e){for(var r of e)t[r]="fetchCacheABTest"===r?function(t){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t.hasOwnProperty("default_value"))return t.default_value}:function(t){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t&&_.isFunction(t.callback)&&t.hasOwnProperty("default_value")&&t.callback(t.default_value)}}function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var a=t.getExpResult(e,r);e.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var a=e.default_value,i=r||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(a=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},a=e.suc,i=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(initAPI(ABTest),!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]),module.exports=ABTest; \ No newline at end of file diff --git a/wechat/abtest.esm.min.js b/wechat/abtest.esm.min.js index 7fb119e..03a56e8 100644 --- a/wechat/abtest.esm.min.js +++ b/wechat/abtest.esm.min.js @@ -1 +1 @@ -var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var a=Array.prototype.forEach,i={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.7",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{a=r=e.getStorageSync(t),r=isString(a)?(-1!==a.indexOf("data:enc;")&&(a=rot13defs(a=a.substring("data:enc;".length))),a):a}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}var a;return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(r,a){var i;try{n=i=JSON.stringify(a),s=!1,t&&t._sa&&t._sa.para&&(s=t._sa.para.encrypt_storage),s&&(isObject(n)&&(n=JSON.stringify(n)),n="data:enc;"+rot13obfs(n)),i=n}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}var n,s;try{e.setStorageSync(r,i)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,a="GET",i=null;t.method&&(a=t.method),t.data&&(i=t.data),r.request({url:e,method:a,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,a=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function defineApi(t,e){for(var r of e)t[r]="fetchCacheABTest"===r?function(t){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t.hasOwnProperty("default_value"))return t.default_value}:function(t){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t&&_.isFunction(t.callback)&&t.hasOwnProperty("default_value")&&t.callback(t.default_value)}}function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var a=t.getExpResult(e,r);e.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var a=e.default_value,i=r||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(a=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},a=e.suc,i=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(initAPI(ABTest),!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]);export default ABTest; \ No newline at end of file +var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var a=Array.prototype.forEach,i={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.8",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{a=r=e.getStorageSync(t),r=isString(a)?(-1!==a.indexOf("data:enc;")&&(a=rot13defs(a=a.substring("data:enc;".length))),a):a}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}var a;return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(r,a){var i;try{n=i=JSON.stringify(a),s=!1,t&&t._sa&&t._sa.para&&(s=t._sa.para.encrypt_storage),s&&(isObject(n)&&(n=JSON.stringify(n)),n="data:enc;"+rot13obfs(n)),i=n}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}var n,s;try{e.setStorageSync(r,i)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,a="GET",i=null;t.method&&(a=t.method),t.data&&(i=t.data),r.request({url:e,method:a,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,a=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function defineApi(t,e){for(var r of e)t[r]="fetchCacheABTest"===r?function(t){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t.hasOwnProperty("default_value"))return t.default_value}:function(t){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t&&_.isFunction(t.callback)&&t.hasOwnProperty("default_value")&&t.callback(t.default_value)}}function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var a=t.getExpResult(e,r);e.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var a=e.default_value,i=r||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(a=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},a=e.suc,i=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(initAPI(ABTest),!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]);export default ABTest; \ No newline at end of file From ccedf9e5cde40cab66b58b0c56b33a9bacae5756 Mon Sep 17 00:00:00 2001 From: shengyonggen Date: Fri, 15 Apr 2022 17:59:37 +0800 Subject: [PATCH 08/13] Release 0.0.9 --- CHANGELOG.md | 5 +++++ alipay/abtest.cmd.min.js | 2 +- alipay/abtest.esm.min.js | 2 +- package.json | 2 +- quickapp/abtest.esm.min.js | 2 +- wechat/abtest.cmd.min.js | 2 +- wechat/abtest.esm.min.js | 2 +- 7 files changed, 11 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9c004d..2c866fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ + +## 0.0.9(2022-4-15) +1. 优化 + - 请求 `A/B` 实验的用户 `ID` 兼容 `loginWithKey` 登录的用户 `ID` + ## 0.0.8(2022-3-18) 1. 新增 diff --git a/alipay/abtest.cmd.min.js b/alipay/abtest.cmd.min.js index ba41df1..37445e8 100644 --- a/alipay/abtest.cmd.min.js +++ b/alipay/abtest.cmd.min.js @@ -1 +1 @@ -"use strict";var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var a=Array.prototype.forEach,i={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(my.getAccountInfoSync&&(t=my.getAppIdSync()),isObject(t))return t.appId||""}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.8",platform:"AlipayMini",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"alipaymini_abtesting",platform_obj:my},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{a=r=e.getStorageSync({key:t}),r=isString(a)?(-1!==a.indexOf("data:enc;")&&(a=rot13defs(a=a.substring("data:enc;".length))),a):a}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}var a;return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(r,a){var i;try{n=i=JSON.stringify(a),s=!1,t&&t._sa&&t._sa.para&&(s=t._sa.para.encrypt_storage),s&&(isObject(n)&&(n=JSON.stringify(n)),n="data:enc;"+rot13obfs(n)),i=n}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}var n,s;try{e.setStorageSync({key:r,data:i})}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,a="GET",i=null;t.method&&(a=t.method),t.data&&(i=t.data),r.request({url:e,method:a,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,a=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function defineApi(t,e){for(var r of e)t[r]="fetchCacheABTest"===r?function(t){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t.hasOwnProperty("default_value"))return t.default_value}:function(t){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t&&_.isFunction(t.callback)&&t.hasOwnProperty("default_value")&&t.callback(t.default_value)}}function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var a=t.getExpResult(e,r);e.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var a=e.default_value,i=r||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(a=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},a=e.suc,i=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(initAPI(ABTest),!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=my.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="ali-"+t.scene),this.fetchTest()},defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]),module.exports=ABTest; \ No newline at end of file +"use strict";var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var a=Array.prototype.forEach,i={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(my.getAccountInfoSync&&(t=my.getAppIdSync()),isObject(t))return t.appId||""}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.9",platform:"AlipayMini",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"alipaymini_abtesting",platform_obj:my},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{a=r=e.getStorageSync({key:t}),r=isString(a)?(-1!==a.indexOf("data:enc;")&&(a=rot13defs(a=a.substring("data:enc;".length))),a):a}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}var a;return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(r,a){var i;try{n=i=JSON.stringify(a),s=!1,t&&t._sa&&t._sa.para&&(s=t._sa.para.encrypt_storage),s&&(isObject(n)&&(n=JSON.stringify(n)),n="data:enc;"+rot13obfs(n)),i=n}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}var n,s;try{e.setStorageSync({key:r,data:i})}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,a="GET",i=null;t.method&&(a=t.method),t.data&&(i=t.data),r.request({url:e,method:a,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,a=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function defineApi(t,e){for(var r of e)t[r]="fetchCacheABTest"===r?function(t){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t.hasOwnProperty("default_value"))return t.default_value}:function(t){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t&&_.isFunction(t.callback)&&t.hasOwnProperty("default_value")&&t.callback(t.default_value)}}function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var a=t.getExpResult(e,r);e.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var a=e.default_value,i=r||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(a=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},a=e.suc,i=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(initAPI(ABTest),!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=my.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="ali-"+t.scene),this.fetchTest()},defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]),module.exports=ABTest; \ No newline at end of file diff --git a/alipay/abtest.esm.min.js b/alipay/abtest.esm.min.js index b1a2b17..d35c32e 100644 --- a/alipay/abtest.esm.min.js +++ b/alipay/abtest.esm.min.js @@ -1 +1 @@ -var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var a in e)void 0!==e[a]&&(t[a]=e[a])}),t}function each(t,e,a){var r=Array.prototype.forEach,i={};if(null==t)return!1;if(r&&t.forEach===r)t.forEach(e,a);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(my.getAccountInfoSync&&(t=my.getAppIdSync()),isObject(t))return t.appId||""}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.8",platform:"AlipayMini",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"alipaymini_abtesting",platform_obj:my},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var a="";try{r=a=e.getStorageSync({key:t}),a=isString(r)?(-1!==r.indexOf("data:enc;")&&(r=rot13defs(r=r.substring("data:enc;".length))),r):r}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}var r;return isJSONString(a)&&(a=JSON.parse(a)),a},setStorage:function(a,r){var i;try{n=i=JSON.stringify(r),s=!1,t&&t._sa&&t._sa.para&&(s=t._sa.para.encrypt_storage),s&&(isObject(n)&&(n=JSON.stringify(n)),n="data:enc;"+rot13obfs(n)),i=n}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}var n,s;try{e.setStorageSync({key:a,data:i})}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,a=t.info.platform_obj;isObject(a)&&(e=function(t){var e=t.url,r="GET",i=null;t.method&&(r=t.method),t.data&&(i=t.data),a.request({url:e,method:r,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,a=!1,r=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),a=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(r),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!a&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),r=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),r=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),r=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),r=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),r=!1)}}),r}};function defineApi(t,e){for(var a of e)t[a]="fetchCacheABTest"===a?function(t){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t.hasOwnProperty("default_value"))return t.default_value}:function(t){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t&&_.isFunction(t.callback)&&t.hasOwnProperty("default_value")&&t.callback(t.default_value)}}function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var a=_.getQueryParam(e.url,"project-key");return a?(t.para.project_key=a,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var a=t.searchLocalExp(e.param_name);if(_.isObject(a)){var r=t.getExpResult(e,a);e.callback(r)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(a){if(_.isObject(a)&&"SUCCESS"===a.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",a),t.updateData(a.results);var r=t.getExpResult(e);e.callback(r)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,a){var r=e.default_value,i=a||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(r=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),r},t.getResultFromServer=function(e){var a=(e=_.isObject(e)?e:{}).para||{},r=e.suc,i=e.fail,n=t.creatRequestData(a);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:a.timeout_milliseconds||t.para.timeout_milliseconds,suc:r,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var a=!1,r=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(a=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(r=!0),!r){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!a){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(initAPI(ABTest),!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var a=ABTest.store.getStorage(this.info.storage_key);_.isObject(a)?this.state.test_list=a:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=my.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="ali-"+t.scene),this.fetchTest()},defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]);export default ABTest; \ No newline at end of file +var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var a=Array.prototype.forEach,i={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(my.getAccountInfoSync&&(t=my.getAppIdSync()),isObject(t))return t.appId||""}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.9",platform:"AlipayMini",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"alipaymini_abtesting",platform_obj:my},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{a=r=e.getStorageSync({key:t}),r=isString(a)?(-1!==a.indexOf("data:enc;")&&(a=rot13defs(a=a.substring("data:enc;".length))),a):a}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}var a;return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(r,a){var i;try{n=i=JSON.stringify(a),s=!1,t&&t._sa&&t._sa.para&&(s=t._sa.para.encrypt_storage),s&&(isObject(n)&&(n=JSON.stringify(n)),n="data:enc;"+rot13obfs(n)),i=n}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}var n,s;try{e.setStorageSync({key:r,data:i})}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,a="GET",i=null;t.method&&(a=t.method),t.data&&(i=t.data),r.request({url:e,method:a,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,a=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function defineApi(t,e){for(var r of e)t[r]="fetchCacheABTest"===r?function(t){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t.hasOwnProperty("default_value"))return t.default_value}:function(t){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t&&_.isFunction(t.callback)&&t.hasOwnProperty("default_value")&&t.callback(t.default_value)}}function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var a=t.getExpResult(e,r);e.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var a=e.default_value,i=r||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(a=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},a=e.suc,i=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(initAPI(ABTest),!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=my.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="ali-"+t.scene),this.fetchTest()},defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]);export default ABTest; \ No newline at end of file diff --git a/package.json b/package.json index 03ef73a..eeb56e7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ab-sdk-miniprogram", - "version": "0.0.8", + "version": "0.0.9", "description": "神策小程序 A/B Testing SDk", "main": "", "scripts": { diff --git a/quickapp/abtest.esm.min.js b/quickapp/abtest.esm.min.js index 6afd89e..b8dbb8c 100644 --- a/quickapp/abtest.esm.min.js +++ b/quickapp/abtest.esm.min.js @@ -1 +1 @@ -import device from"@system.device";import storage from"@system.storage";import fetch from"@system.fetch";var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(e){return each(Array.prototype.slice.call(arguments,1),function(t){for(var r in t)void 0!==t[r]&&(e[r]=t[r])}),e}function each(e,t,r){var a=Array.prototype.forEach,i={};if(null==e)return!1;if(a&&e.forEach===a)e.forEach(t,r);else if(e.length===+e.length){for(var s=0,n=e.length;s0||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",t.param_name),a=!1);break;case"value_type":_.isString(t.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",t.value_type),a=!1);break;case"default_value":void 0===t.default_value?(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(t.default_value,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",t.default_value,t.value_type),a=!1);break;case"callback":_.isFunction(t.callback)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function defineApi(e,t){for(var r of t)e[r]="fetchCacheABTest"===r?function(e){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),e.hasOwnProperty("default_value"))return e.default_value}:function(e){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),e&&_.isFunction(e.callback)&&e.hasOwnProperty("default_value")&&e.callback(e.default_value)}}function initAPI(e){e.setPara=function(t){if(!_.isString(t.url)||"http"!==t.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;e.para.url=t.url;var r=_.getQueryParam(t.url,"project-key");return r?(e.para.project_key=r,_.isNumber(t.timeout_milliseconds)&&(t.timeout_milliseconds<200?e.para.timeout_milliseconds=200:e.para.timeout_milliseconds=t.timeout_milliseconds),_.isNumber(t.update_interval)&&(e.para.update_interval=t.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},e.asyncFetchABTest=function(t){return _.isObject(t)?!!verifyStore.para("asyncFetchABTest",t,["param_name","value_type","default_value","callback"])&&(_.validTimeout(t),void e.asyncFetch(t)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},e.fastFetchABTest=function(t){if(!_.isObject(t))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",t,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(t);var r=e.searchLocalExp(t.param_name);if(_.isObject(r)){var a=e.getExpResult(t,r);t.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),e.asyncFetch(t)},e.fetchCacheABTest=function(t){if(_.isObject(t))return!!verifyStore.para("fetchCacheABTest",t,["param_name","value_type","default_value"])&&e.getExpResult(t);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},e.asyncFetch=function(t){e.getResultFromServer({para:t,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),e.updateData(r.results);var a=e.getExpResult(t);t.callback(a)}else t.callback(t.default_value)},fail:function(e){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",e),t.callback(t.default_value)}})},e.searchLocalExp=function(t){return!!e.state.test_list[t]&&e.state.test_list[t]},e.getExpResult=function(t,r){var a=t.default_value,i=r||e.searchLocalExp(t.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===t.value_type?(a=i.config.value,e.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+t.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+t.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+t.param_name),a},e.getResultFromServer=function(t){var r=(t=_.isObject(t)?t:{}).para||{},a=t.suc,i=t.fail,s=e.creatRequestData(r);e.request({url:e.para.url,method:"POST",data:JSON.stringify(s),contentType:"application/json",timeout:r.timeout_milliseconds||e.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={lib_version:"0.0.8",platform:"QuickApp",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"quickapp_abtesting"},props={$manufacturer:"",$model:"",$brand:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[],store_inited:!1,fetch_queue:[]};function mixinConfig(e){e.para=para,e.info=info,e.state=state,e.props=props}function mixinTrack(e){e.trackTestTrigger=function(t){var r=!1,a=!1;if(t.is_white_list)return!1;if(e.state.trigger_list.length>0&&(r=!0),-1!==e.state.trigger_list.indexOf(t.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:t.abtest_experiment_id,$abtest_experiment_group_id:t.abtest_experiment_group_id};if(!r){var s=e.info.lib_plugin_name+":"+e.info.lib_version;i.$lib_plugin_version=[s]}e.state.trigger_list.push(t.abtest_experiment_id),e._sa.track("$ABTestTrigger",i)}}}var request=function(e){var t=e.url,r="GET",a=null;e.method&&(r=e.method),e.data&&(a=e.data),fetch.fetch({data:a,responseType:"Object",method:r,url:t,success:function(t){var r={};if(t.data)try{r=JSON.parse(t.data)}catch(e){r={}}e.suc(r)},fail:e.fail})};function mixinRequest(e){e.request=request}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(e,t){return _.isObject(t.app)?t.app.sensorsABTest=ABTest:_.log("\u8bf7\u4f20\u5165\u6b63\u786e\u7684 App \u5bf9\u8c61\uff01"),_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),!this.state.inited&&(initAPI(ABTest),!!this.setPara(t)&&(this.state.inited=!0,this._sa=e,this.subId=new e.eventSub(this.handleEvents),this.subId.isReady(),void getStorage(ABTest.info.storage_key,ABTest.getTestList)))},ABTest.handleEvents=function(e){if("changeDistinctId"===e&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest()),"initStore"===e){if(ABTest.state.store_inited)return!1;ABTest.state.store_inited=!0,_.getSystemInfo(ABTest,ABTest.fetchTest),ABTest.state.fetch_queue.length>0&&_.each(ABTest.state.fetch_queue,function(e){ABTest[e.event].apply(ABTest,e.arg)})}},ABTest.getTestList=function(e){_.isObject(e)?ABTest.state.test_list=e:ABTest.state.test_list={}},_.each(["fetchTest","asyncFetch"],function(e){var t=ABTest[e];ABTest[e]=function(){ABTest.state.store_inited?t.apply(ABTest,arguments):ABTest.state.fetch_queue.push({event:e,arg:arguments})}}),defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]);export default ABTest; \ No newline at end of file +import device from"@system.device";import storage from"@system.storage";import fetch from"@system.fetch";var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(e){return each(Array.prototype.slice.call(arguments,1),function(t){for(var r in t)void 0!==t[r]&&(e[r]=t[r])}),e}function each(e,t,r){var a=Array.prototype.forEach,i={};if(null==e)return!1;if(a&&e.forEach===a)e.forEach(t,r);else if(e.length===+e.length){for(var n=0,s=e.length;n0||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",t.param_name),a=!1);break;case"value_type":_.isString(t.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",t.value_type),a=!1);break;case"default_value":void 0===t.default_value?(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(t.default_value,t.value_type)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",t.default_value,t.value_type),a=!1);break;case"callback":_.isFunction(t.callback)||(_.log(e+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function defineApi(e,t){for(var r of t)e[r]="fetchCacheABTest"===r?function(e){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),e.hasOwnProperty("default_value"))return e.default_value}:function(e){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),e&&_.isFunction(e.callback)&&e.hasOwnProperty("default_value")&&e.callback(e.default_value)}}function initAPI(e){e.setPara=function(t){if(!_.isString(t.url)||"http"!==t.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;e.para.url=t.url;var r=_.getQueryParam(t.url,"project-key");return r?(e.para.project_key=r,_.isNumber(t.timeout_milliseconds)&&(t.timeout_milliseconds<200?e.para.timeout_milliseconds=200:e.para.timeout_milliseconds=t.timeout_milliseconds),_.isNumber(t.update_interval)&&(e.para.update_interval=t.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},e.asyncFetchABTest=function(t){return _.isObject(t)?!!verifyStore.para("asyncFetchABTest",t,["param_name","value_type","default_value","callback"])&&(_.validTimeout(t),void e.asyncFetch(t)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},e.fastFetchABTest=function(t){if(!_.isObject(t))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",t,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(t);var r=e.searchLocalExp(t.param_name);if(_.isObject(r)){var a=e.getExpResult(t,r);t.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),e.asyncFetch(t)},e.fetchCacheABTest=function(t){if(_.isObject(t))return!!verifyStore.para("fetchCacheABTest",t,["param_name","value_type","default_value"])&&e.getExpResult(t);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},e.asyncFetch=function(t){e.getResultFromServer({para:t,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),e.updateData(r.results);var a=e.getExpResult(t);t.callback(a)}else t.callback(t.default_value)},fail:function(e){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",e),t.callback(t.default_value)}})},e.searchLocalExp=function(t){return!!e.state.test_list[t]&&e.state.test_list[t]},e.getExpResult=function(t,r){var a=t.default_value,i=r||e.searchLocalExp(t.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===t.value_type?(a=i.config.value,e.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+t.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+t.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+t.param_name),a},e.getResultFromServer=function(t){var r=(t=_.isObject(t)?t:{}).para||{},a=t.suc,i=t.fail,n=e.creatRequestData(r);e.request({url:e.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||e.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={lib_version:"0.0.9",platform:"QuickApp",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"quickapp_abtesting"},props={$manufacturer:"",$model:"",$brand:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[],store_inited:!1,fetch_queue:[]};function mixinConfig(e){e.para=para,e.info=info,e.state=state,e.props=props}function mixinTrack(e){e.trackTestTrigger=function(t){var r=!1,a=!1;if(t.is_white_list)return!1;if(e.state.trigger_list.length>0&&(r=!0),-1!==e.state.trigger_list.indexOf(t.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:t.abtest_experiment_id,$abtest_experiment_group_id:t.abtest_experiment_group_id};if(!r){var n=e.info.lib_plugin_name+":"+e.info.lib_version;i.$lib_plugin_version=[n]}e.state.trigger_list.push(t.abtest_experiment_id),e._sa.track("$ABTestTrigger",i)}}}var request=function(e){var t=e.url,r="GET",a=null;e.method&&(r=e.method),e.data&&(a=e.data),fetch.fetch({data:a,responseType:"Object",method:r,url:t,success:function(t){var r={};if(t.data)try{r=JSON.parse(t.data)}catch(e){r={}}e.suc(r)},fail:e.fail})};function mixinRequest(e){e.request=request}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(e,t){return _.isObject(t.app)?t.app.sensorsABTest=ABTest:_.log("\u8bf7\u4f20\u5165\u6b63\u786e\u7684 App \u5bf9\u8c61\uff01"),_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),!this.state.inited&&(initAPI(ABTest),!!this.setPara(t)&&(this.state.inited=!0,this._sa=e,this.subId=new e.eventSub(this.handleEvents),this.subId.isReady(),void getStorage(ABTest.info.storage_key,ABTest.getTestList)))},ABTest.handleEvents=function(e){if("changeDistinctId"===e&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest()),"initStore"===e){if(ABTest.state.store_inited)return!1;ABTest.state.store_inited=!0,_.getSystemInfo(ABTest,ABTest.fetchTest),ABTest.state.fetch_queue.length>0&&_.each(ABTest.state.fetch_queue,function(e){ABTest[e.event].apply(ABTest,e.arg)})}},ABTest.getTestList=function(e){_.isObject(e)?ABTest.state.test_list=e:ABTest.state.test_list={}},_.each(["fetchTest","asyncFetch"],function(e){var t=ABTest[e];ABTest[e]=function(){ABTest.state.store_inited?t.apply(ABTest,arguments):ABTest.state.fetch_queue.push({event:e,arg:arguments})}}),defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]);export default ABTest; \ No newline at end of file diff --git a/wechat/abtest.cmd.min.js b/wechat/abtest.cmd.min.js index 9b49b5a..eef2fb1 100644 --- a/wechat/abtest.cmd.min.js +++ b/wechat/abtest.cmd.min.js @@ -1 +1 @@ -"use strict";var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var a=Array.prototype.forEach,i={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.8",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{a=r=e.getStorageSync(t),r=isString(a)?(-1!==a.indexOf("data:enc;")&&(a=rot13defs(a=a.substring("data:enc;".length))),a):a}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}var a;return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(r,a){var i;try{n=i=JSON.stringify(a),s=!1,t&&t._sa&&t._sa.para&&(s=t._sa.para.encrypt_storage),s&&(isObject(n)&&(n=JSON.stringify(n)),n="data:enc;"+rot13obfs(n)),i=n}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}var n,s;try{e.setStorageSync(r,i)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,a="GET",i=null;t.method&&(a=t.method),t.data&&(i=t.data),r.request({url:e,method:a,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,a=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function defineApi(t,e){for(var r of e)t[r]="fetchCacheABTest"===r?function(t){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t.hasOwnProperty("default_value"))return t.default_value}:function(t){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t&&_.isFunction(t.callback)&&t.hasOwnProperty("default_value")&&t.callback(t.default_value)}}function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var a=t.getExpResult(e,r);e.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var a=e.default_value,i=r||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(a=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},a=e.suc,i=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(initAPI(ABTest),!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]),module.exports=ABTest; \ No newline at end of file +"use strict";var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var a=Array.prototype.forEach,i={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.9",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{a=r=e.getStorageSync(t),r=isString(a)?(-1!==a.indexOf("data:enc;")&&(a=rot13defs(a=a.substring("data:enc;".length))),a):a}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}var a;return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(r,a){var i;try{n=i=JSON.stringify(a),s=!1,t&&t._sa&&t._sa.para&&(s=t._sa.para.encrypt_storage),s&&(isObject(n)&&(n=JSON.stringify(n)),n="data:enc;"+rot13obfs(n)),i=n}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}var n,s;try{e.setStorageSync(r,i)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,a="GET",i=null;t.method&&(a=t.method),t.data&&(i=t.data),r.request({url:e,method:a,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,a=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function defineApi(t,e){for(var r of e)t[r]="fetchCacheABTest"===r?function(t){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t.hasOwnProperty("default_value"))return t.default_value}:function(t){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t&&_.isFunction(t.callback)&&t.hasOwnProperty("default_value")&&t.callback(t.default_value)}}function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var a=t.getExpResult(e,r);e.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var a=e.default_value,i=r||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(a=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},a=e.suc,i=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(initAPI(ABTest),!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]),module.exports=ABTest; \ No newline at end of file diff --git a/wechat/abtest.esm.min.js b/wechat/abtest.esm.min.js index 03a56e8..4500bdf 100644 --- a/wechat/abtest.esm.min.js +++ b/wechat/abtest.esm.min.js @@ -1 +1 @@ -var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var a=Array.prototype.forEach,i={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.8",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{a=r=e.getStorageSync(t),r=isString(a)?(-1!==a.indexOf("data:enc;")&&(a=rot13defs(a=a.substring("data:enc;".length))),a):a}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}var a;return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(r,a){var i;try{n=i=JSON.stringify(a),s=!1,t&&t._sa&&t._sa.para&&(s=t._sa.para.encrypt_storage),s&&(isObject(n)&&(n=JSON.stringify(n)),n="data:enc;"+rot13obfs(n)),i=n}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}var n,s;try{e.setStorageSync(r,i)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,a="GET",i=null;t.method&&(a=t.method),t.data&&(i=t.data),r.request({url:e,method:a,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,a=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function defineApi(t,e){for(var r of e)t[r]="fetchCacheABTest"===r?function(t){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t.hasOwnProperty("default_value"))return t.default_value}:function(t){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t&&_.isFunction(t.callback)&&t.hasOwnProperty("default_value")&&t.callback(t.default_value)}}function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var a=t.getExpResult(e,r);e.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var a=e.default_value,i=r||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(a=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},a=e.suc,i=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(initAPI(ABTest),!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]);export default ABTest; \ No newline at end of file +var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var a=Array.prototype.forEach,i={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.9",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{a=r=e.getStorageSync(t),r=isString(a)?(-1!==a.indexOf("data:enc;")&&(a=rot13defs(a=a.substring("data:enc;".length))),a):a}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}var a;return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(r,a){var i;try{n=i=JSON.stringify(a),s=!1,t&&t._sa&&t._sa.para&&(s=t._sa.para.encrypt_storage),s&&(isObject(n)&&(n=JSON.stringify(n)),n="data:enc;"+rot13obfs(n)),i=n}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}var n,s;try{e.setStorageSync(r,i)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,a="GET",i=null;t.method&&(a=t.method),t.data&&(i=t.data),r.request({url:e,method:a,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,a=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function defineApi(t,e){for(var r of e)t[r]="fetchCacheABTest"===r?function(t){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t.hasOwnProperty("default_value"))return t.default_value}:function(t){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t&&_.isFunction(t.callback)&&t.hasOwnProperty("default_value")&&t.callback(t.default_value)}}function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var a=t.getExpResult(e,r);e.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var a=e.default_value,i=r||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(a=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},a=e.suc,i=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(initAPI(ABTest),!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]);export default ABTest; \ No newline at end of file From fd7d89e3220c770aa88b238b372b4486fed53baf Mon Sep 17 00:00:00 2001 From: shengyonggen Date: Tue, 10 May 2022 18:07:01 +0800 Subject: [PATCH 09/13] Update README.md --- .README.md.swp | Bin 0 -> 12288 bytes README.md | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 .README.md.swp diff --git a/.README.md.swp b/.README.md.swp new file mode 100644 index 0000000000000000000000000000000000000000..9ddee8e3c7f2e5043ad85e706806809741211293 GIT binary patch literal 12288 zcmeI2-%}gc6~{M8J5AGe+G!s8dQCc0+ha)}|9~W&P8Fb2O>Af^oJ@wvkd?HEb)?2I+VUZm*W4#5t3}IB-#9&6cqa$tXJg}l@|gwxMmCS0x!v8 zKxRXZ%dM`KORe^h|LIPxvlao1z%dE@h&k(QsHetn)SW=D|Mbc+$600;0gHe|z#?D~ zun1TLECLn*i@^T_0abd5`6DFqaygl^<@cA4yq7;(Zx#WIfJML}U=gqgSOhEr76FTZ zMZh9p5wHmS4-#PE-|8v&Yw7 zw!X_So1hKQeb7Bn3={?Z8uZWaz&xO@K`Ws9pl;C5L4SpOra&~W2+hrUSp@!z2n6{M zud*sH3JMAfeojVe4~H)DK2A_LJLBQF+7qZ-Gz}Dq^YPuh4+U8v5M~1$3W%R_vH%-r zki^L$UQtReS;5bI;O_Ws`;`v#f$Q>RS6hd>)q~nEqvrOu7I%lcy$wG72D#ckMDM!W zTFxMjhX7>6^-40QC{cVJ z%rQ)ls!DG;9Fa)G&PuGWhqH@vzyVGuGR1Mx-Q3#dX|*}+u)*O&F^ocN9}>MP3*K1d z6D9c6{cliNmFX+n38IR^3S|!Ibn_4t*X!dXm4@OIDF{~ZaVP?iYF*fwa>Z)FxJtoQ zYIz2|&&jkX2m(VVX_f2BgX&Jb%`nXnn9K)yROGC0IDfD^=B#%*kq2@TWd*gsjw$38 ze0JEe@kYfZwDD)C^F-(4Xq?*i)4`lGIQN4fLSiXw~*J+IN z!~c0`Ww*9Nw`xx~f11sx{pk*Y1>O=JY$TdXbYa`M0hW&?av$8JH_b%oZLdy z=6J4FYc^Z2Sqz0l;di{R>ujlt5ZB=xBt3@X^DlCabLBaJ=F*Aq2`C;|)pn;KClls-?;#_bF|q}HZ{bCO zG;fDmkcU&euwprn1u}jc4=jEoM93YoE^*#l03xuKH8!1ZfHkG5p-T8$eVDxnUXV%G zOq5}a+!jvu8_{d#^aEeS0k@>q-+96g5v%#aQGbQ5!F1f|q>o~dgI2zM-7I89Oo&83} z$lWPVdLv=_uYFj+6voga9G`_uaXyRV_sr?wDW{LG)jkFRU2U7`E2GBddNuxJ{K=>w zeZWQ1P?T}=v57~<$d~)2yk=nCfhq9Tm&VedK067KYlRy|Yywb2BE_NW#@rY^nBBw^ zS-ihOHsR40E3QnNRe)nWyjhIi)*p-jC2i-fF`uEp$6|P4M$6yV@;k;-%uJaYZ*Ssc zj!fi8BBt%eDCd%y5la}?zA9eJ6sIzfqghH4-GMVWov9Q$L5HU^T0TxTw!j-LM0%aN zO${6Ui}cKcCGv0tg2CxEGP($jLDH*mj1!ZTgSpPm!is*2GB;Dsr(vaodf~AtdXVqO z>B7P8Y&nLKlfzOT@o=OupzU#P8-7y)X2XU|PB)$OL%%~t>)Oq^!B~j*1pRO(- z^xNr??^di=48xK^e}|Rw;~hrUHt91woGL9TCn=u&HM|f C$DRHF literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 9878cb4..437f4b8 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ A/B Testing SDK 是一款用于 A/B 测试的 SDK。 ## 集成文档 -请参考神策官网 [集成文档](https://manual.sensorsdata.cn/sa/latest/tech_ab_testing-17569307.html)。 +请参考神策官网 [集成文档](https://manual.sensorsdata.cn/abtesting/latest/a-b-testing-50987201.html)。 ## 讨论 @@ -36,7 +36,7 @@ A/B Testing SDK 是一款用于 A/B 测试的 SDK。 ## License -Copyright 2015-2021 Sensors Data Inc. +Copyright 2015-2022 Sensors Data Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. From d896f53f2014c1c028071a9129abd0d210613710 Mon Sep 17 00:00:00 2001 From: shengyonggen Date: Tue, 10 May 2022 18:30:13 +0800 Subject: [PATCH 10/13] Update README.md --- .README.md.swp | Bin 12288 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .README.md.swp diff --git a/.README.md.swp b/.README.md.swp deleted file mode 100644 index 9ddee8e3c7f2e5043ad85e706806809741211293..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2-%}gc6~{M8J5AGe+G!s8dQCc0+ha)}|9~W&P8Fb2O>Af^oJ@wvkd?HEb)?2I+VUZm*W4#5t3}IB-#9&6cqa$tXJg}l@|gwxMmCS0x!v8 zKxRXZ%dM`KORe^h|LIPxvlao1z%dE@h&k(QsHetn)SW=D|Mbc+$600;0gHe|z#?D~ zun1TLECLn*i@^T_0abd5`6DFqaygl^<@cA4yq7;(Zx#WIfJML}U=gqgSOhEr76FTZ zMZh9p5wHmS4-#PE-|8v&Yw7 zw!X_So1hKQeb7Bn3={?Z8uZWaz&xO@K`Ws9pl;C5L4SpOra&~W2+hrUSp@!z2n6{M zud*sH3JMAfeojVe4~H)DK2A_LJLBQF+7qZ-Gz}Dq^YPuh4+U8v5M~1$3W%R_vH%-r zki^L$UQtReS;5bI;O_Ws`;`v#f$Q>RS6hd>)q~nEqvrOu7I%lcy$wG72D#ckMDM!W zTFxMjhX7>6^-40QC{cVJ z%rQ)ls!DG;9Fa)G&PuGWhqH@vzyVGuGR1Mx-Q3#dX|*}+u)*O&F^ocN9}>MP3*K1d z6D9c6{cliNmFX+n38IR^3S|!Ibn_4t*X!dXm4@OIDF{~ZaVP?iYF*fwa>Z)FxJtoQ zYIz2|&&jkX2m(VVX_f2BgX&Jb%`nXnn9K)yROGC0IDfD^=B#%*kq2@TWd*gsjw$38 ze0JEe@kYfZwDD)C^F-(4Xq?*i)4`lGIQN4fLSiXw~*J+IN z!~c0`Ww*9Nw`xx~f11sx{pk*Y1>O=JY$TdXbYa`M0hW&?av$8JH_b%oZLdy z=6J4FYc^Z2Sqz0l;di{R>ujlt5ZB=xBt3@X^DlCabLBaJ=F*Aq2`C;|)pn;KClls-?;#_bF|q}HZ{bCO zG;fDmkcU&euwprn1u}jc4=jEoM93YoE^*#l03xuKH8!1ZfHkG5p-T8$eVDxnUXV%G zOq5}a+!jvu8_{d#^aEeS0k@>q-+96g5v%#aQGbQ5!F1f|q>o~dgI2zM-7I89Oo&83} z$lWPVdLv=_uYFj+6voga9G`_uaXyRV_sr?wDW{LG)jkFRU2U7`E2GBddNuxJ{K=>w zeZWQ1P?T}=v57~<$d~)2yk=nCfhq9Tm&VedK067KYlRy|Yywb2BE_NW#@rY^nBBw^ zS-ihOHsR40E3QnNRe)nWyjhIi)*p-jC2i-fF`uEp$6|P4M$6yV@;k;-%uJaYZ*Ssc zj!fi8BBt%eDCd%y5la}?zA9eJ6sIzfqghH4-GMVWov9Q$L5HU^T0TxTw!j-LM0%aN zO${6Ui}cKcCGv0tg2CxEGP($jLDH*mj1!ZTgSpPm!is*2GB;Dsr(vaodf~AtdXVqO z>B7P8Y&nLKlfzOT@o=OupzU#P8-7y)X2XU|PB)$OL%%~t>)Oq^!B~j*1pRO(- z^xNr??^di=48xK^e}|Rw;~hrUHt91woGL9TCn=u&HM|f C$DRHF From a874d9cc98fd25b3702f79ac2583f2a9bfaa1366 Mon Sep 17 00:00:00 2001 From: shengyonggen Date: Mon, 12 Jun 2023 19:17:38 +0800 Subject: [PATCH 11/13] back --- wechat/abtest.cmd.min.js | 1 - wechat/abtest.esm.min.js | 1 - 2 files changed, 2 deletions(-) delete mode 100644 wechat/abtest.cmd.min.js delete mode 100644 wechat/abtest.esm.min.js diff --git a/wechat/abtest.cmd.min.js b/wechat/abtest.cmd.min.js deleted file mode 100644 index eef2fb1..0000000 --- a/wechat/abtest.cmd.min.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var a=Array.prototype.forEach,i={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.9",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{a=r=e.getStorageSync(t),r=isString(a)?(-1!==a.indexOf("data:enc;")&&(a=rot13defs(a=a.substring("data:enc;".length))),a):a}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}var a;return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(r,a){var i;try{n=i=JSON.stringify(a),s=!1,t&&t._sa&&t._sa.para&&(s=t._sa.para.encrypt_storage),s&&(isObject(n)&&(n=JSON.stringify(n)),n="data:enc;"+rot13obfs(n)),i=n}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}var n,s;try{e.setStorageSync(r,i)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,a="GET",i=null;t.method&&(a=t.method),t.data&&(i=t.data),r.request({url:e,method:a,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,a=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function defineApi(t,e){for(var r of e)t[r]="fetchCacheABTest"===r?function(t){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t.hasOwnProperty("default_value"))return t.default_value}:function(t){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t&&_.isFunction(t.callback)&&t.hasOwnProperty("default_value")&&t.callback(t.default_value)}}function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var a=t.getExpResult(e,r);e.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var a=e.default_value,i=r||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(a=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},a=e.suc,i=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(initAPI(ABTest),!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]),module.exports=ABTest; \ No newline at end of file diff --git a/wechat/abtest.esm.min.js b/wechat/abtest.esm.min.js deleted file mode 100644 index 4500bdf..0000000 --- a/wechat/abtest.esm.min.js +++ /dev/null @@ -1 +0,0 @@ -var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(t){return each(Array.prototype.slice.call(arguments,1),function(e){for(var r in e)void 0!==e[r]&&(t[r]=e[r])}),t}function each(t,e,r){var a=Array.prototype.forEach,i={};if(null==t)return!1;if(a&&t.forEach===a)t.forEach(e,r);else if(t.length===+t.length){for(var n=0,s=t.length;n-1?e.system.split(" ")[1]:e.system}catch(t){log("get system fails")}}function getAppId(){var t;if(wx.getAccountInfoSync&&(t=wx.getAccountInfoSync()),isObject(t)&&isObject(t.miniProgram))return t.miniProgram.appId}_.getSystemInfo=getSystemInfo,_.getAppId=getAppId;var para={url:"",project_key:"",retry_times:3,timeout_milliseconds:3e3,update_interval:6e5},info={scene:"",lib_version:"0.0.9",platform:"MiniProgram",storage_key:"sensorsdata2015_ABTest",lib_plugin_name:"miniprogram_abtesting",platform_obj:wx},props={$manufacturer:"",$model:"",$os:"",$os_version:""},state={inited:!1,fetchInterval:null,test_list:{},trigger_list:[]};function mixinConfig(t){t.para=para,t.info=info,t.state=state,t.props=props}function mixinStore(t){var e=t.info.platform_obj;if(!e||isEmptyObject(e))return!1;t.store={getStorage:function(t){var r="";try{a=r=e.getStorageSync(t),r=isString(a)?(-1!==a.indexOf("data:enc;")&&(a=rot13defs(a=a.substring("data:enc;".length))),a):a}catch(t){log("\u83b7\u53d6 storage \u5931\u8d25\uff01")}var a;return isJSONString(r)&&(r=JSON.parse(r)),r},setStorage:function(r,a){var i;try{n=i=JSON.stringify(a),s=!1,t&&t._sa&&t._sa.para&&(s=t._sa.para.encrypt_storage),s&&(isObject(n)&&(n=JSON.stringify(n)),n="data:enc;"+rot13obfs(n)),i=n}catch(t){log("\u5e8f\u5217\u5316\u7f13\u5b58\u5bf9\u8c61\u5931\u8d25\uff01")}var n,s;try{e.setStorageSync(r,i)}catch(t){log("set Storage fail again --",t)}}}}function mixinRequest(t){var e,r=t.info.platform_obj;isObject(r)&&(e=function(t){var e=t.url,a="GET",i=null;t.method&&(a=t.method),t.data&&(i=t.data),r.request({url:e,method:a,data:i,timeout:t.timeout,success:function(e){t.suc(e.data)},fail:function(e){t.fail(e)}})}),t.request=e}function mixinFetch(t){t.fetchTest=function(){var e=0,r=!1,a=t.creatRequestData();function i(e){_.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u6210\u529f: ",e),r=!0,t.updateData(e.results),t.state.fetchInterval&&clearTimeout(t.state.fetchInterval),t.state.fetchInterval=setTimeout(function(){t.request({url:t.para.url,method:"POST",data:JSON.stringify(a),timeout:t.para.timeout_milliseconds,suc:i,fail:n})},t.para.update_interval)}function n(s){return _.log("\u62c9\u53d6\u5b9e\u9a8c\u7ed3\u679c\u5931\u8d25: ",s),e++,!r&&e0||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cparam_name\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e\uff01param_name:",e.param_name),a=!1);break;case"value_type":_.isString(e.value_type)&&-1!==_.indexOf(VALUE_TYPE_LIST,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cvalue_type\u914d\u7f6e\u9519\u8bef",e.value_type),a=!1);break;case"default_value":void 0===e.default_value?(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u53c2\u6570\u672a\u914d\u7f6e"),a=!1):verifyStore.valueType(e.default_value,e.value_type)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0cdefault_value\u7c7b\u578b\u5fc5\u987b\u4e0evalue_type\u4e00\u81f4\uff01",e.default_value,e.value_type),a=!1);break;case"callback":_.isFunction(e.callback)||(_.log(t+"\u65b9\u6cd5\u8c03\u7528\u5931\u8d25\uff0ccallback\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),a=!1)}}),a}};function defineApi(t,e){for(var r of e)t[r]="fetchCacheABTest"===r?function(t){if(_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t.hasOwnProperty("default_value"))return t.default_value}:function(t){_.log("\u8c03\u7528\u5206\u6d41 API --- A/B Testing \u63d2\u4ef6\u5c1a\u672a\u521d\u59cb\u5316\uff01"),t&&_.isFunction(t.callback)&&t.hasOwnProperty("default_value")&&t.callback(t.default_value)}}function initAPI(t){t.setPara=function(e){if(!_.isString(e.url)||"http"!==e.url.slice(0,4))return _.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff01"),!1;t.para.url=e.url;var r=_.getQueryParam(e.url,"project-key");return r?(t.para.project_key=r,_.isNumber(e.timeout_milliseconds)&&(e.timeout_milliseconds<200?t.para.timeout_milliseconds=200:t.para.timeout_milliseconds=e.timeout_milliseconds),_.isNumber(e.update_interval)&&(t.para.update_interval=e.update_interval),!0):(_.log("A/B Testing SDK \u521d\u59cb\u5316\u5931\u8d25\uff0c\u8bf7\u4f7f\u7528\u6b63\u786e\u7684 URL\uff08\u5fc5\u987b\u5305\u542b project-key\uff09\uff01"),!1)},t.asyncFetchABTest=function(e){return _.isObject(e)?!!verifyStore.para("asyncFetchABTest",e,["param_name","value_type","default_value","callback"])&&(_.validTimeout(e),void t.asyncFetch(e)):(_.log("asyncFetchABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1)},t.fastFetchABTest=function(e){if(!_.isObject(e))return _.log("fastFetchABTest \u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e"),!1;if(!verifyStore.para("fastFetchABTest",e,["param_name","value_type","default_value","callback"]))return!1;_.validTimeout(e);var r=t.searchLocalExp(e.param_name);if(_.isObject(r)){var a=t.getExpResult(e,r);e.callback(a)}else _.log("fastFetchABTest \u7f13\u5b58\u4e2d\u672a\u8bfb\u53d6\u5230\u6570\u636e\uff0c\u53d1\u8d77\u8bf7\u6c42"),t.asyncFetch(e)},t.fetchCacheABTest=function(e){if(_.isObject(e))return!!verifyStore.para("fetchCacheABTest",e,["param_name","value_type","default_value"])&&t.getExpResult(e);_.log("fetchCacheABTest\u8c03\u7528\u5931\u8d25\uff0c\u53c2\u6570\u672a\u6b63\u786e\u914d\u7f6e")},t.asyncFetch=function(e){t.getResultFromServer({para:e,suc:function(r){if(_.isObject(r)&&"SUCCESS"===r.status){_.log("\u83b7\u53d6\u5230\u670d\u52a1\u7aef\u5b9e\u9a8c\u7ed3\u679c\u6570\u636e: ",r),t.updateData(r.results);var a=t.getExpResult(e);e.callback(a)}else e.callback(e.default_value)},fail:function(t){_.log("\u83b7\u53d6\u670d\u52a1\u7aef\u6570\u636e\u5931\u8d25: ",t),e.callback(e.default_value)}})},t.searchLocalExp=function(e){return!!t.state.test_list[e]&&t.state.test_list[e]},t.getExpResult=function(e,r){var a=e.default_value,i=r||t.searchLocalExp(e.param_name);return _.isObject(i)?_.isObject(i.config)&&(i.config.type===e.value_type?(a=i.config.value,t.trackTestTrigger(i)):_.log("\u8bd5\u9a8c\u7ed3\u679c\u7c7b\u578b\u4e0e\u671f\u671b\u7c7b\u578b\u4e0d\u4e00\u81f4\uff0cparam_name\uff1a"+e.param_name+"\uff0c\u5f53\u524d\u8fd4\u56de\u7c7b\u578b\u4e3a\uff1a"+i.config.type+"\uff0c\u671f\u671b\u7c7b\u578b\u4e3a\uff1a"+e.value_type)):_.log("\u672c\u5730\u672a\u67e5\u8be2\u5230\u8bd5\u9a8c\u6570\u636e\uff0c\u8bd5\u9a8c\u53c2\u6570\u540d\u79f0\uff1a"+e.param_name),a},t.getResultFromServer=function(e){var r=(e=_.isObject(e)?e:{}).para||{},a=e.suc,i=e.fail,n=t.creatRequestData(r);t.request({url:t.para.url,method:"POST",data:JSON.stringify(n),contentType:"application/json",timeout:r.timeout_milliseconds||t.para.timeout_milliseconds,suc:a,fail:i}),_.log("\u5411\u670d\u52a1\u7aef\u53d1\u8d77\u8bd5\u9a8c\u8bf7\u6c42")}}function mixinTrack(t){t.trackTestTrigger=function(e){var r=!1,a=!1;if(e.is_white_list)return!1;if(t.state.trigger_list.length>0&&(r=!0),-1!==t.state.trigger_list.indexOf(e.abtest_experiment_id)&&(a=!0),!a){var i={$abtest_experiment_id:e.abtest_experiment_id,$abtest_experiment_group_id:e.abtest_experiment_group_id};if(!r){var n=t.info.lib_plugin_name+":"+t.info.lib_version;i.$lib_plugin_version=[n]}t.state.trigger_list.push(e.abtest_experiment_id),t._sa.track("$ABTestTrigger",i)}}}var ABTest={};mixinConfig(ABTest),mixinFetch(ABTest),mixinTrack(ABTest),mixinRequest(ABTest),mixinStore(ABTest),ABTest.init=function(t,e){if(_.log("\u521d\u59cb\u5316 ABTest \u63d2\u4ef6"),this.state.inited)return!1;if(initAPI(ABTest),!this.setPara(e))return!1;this.state.inited=!0,this._sa=t,this.subId=new t.eventSub(this.handleIdChange);var r=ABTest.store.getStorage(this.info.storage_key);_.isObject(r)?this.state.test_list=r:this.state.test_list={},_.getSystemInfo(this),this.subId.isReady(),this.listenAppLaunch()},ABTest.handleIdChange=function(t){"changeDistinctId"===t&&(ABTest.state.test_list={},ABTest.state.trigger_list=[],ABTest.store.setStorage(ABTest.info.storage_key,ABTest.state.test_list),ABTest.fetchTest())},ABTest.listenAppLaunch=function(){var t=wx.getLaunchOptionsSync();t&&t.scene&&(this.info.scene="wx-"+t.scene),this.fetchTest()},defineApi(ABTest,["asyncFetchABTest","fastFetchABTest","fetchCacheABTest"]);export default ABTest; \ No newline at end of file From 4c550975203f2478713618de1d4a49f949feeacc Mon Sep 17 00:00:00 2001 From: wangzhzh Date: Sun, 7 Apr 2024 11:13:06 +0800 Subject: [PATCH 12/13] Update README.md --- README.md | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 437f4b8..b7f63b0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![logo](https://opensource.sensorsdata.cn/wp-content/uploads/logo.png) + ## 神策简介 @@ -14,29 +14,15 @@ A/B Testing SDK 是一款用于 A/B 测试的 SDK。 请参考神策官网 [集成文档](https://manual.sensorsdata.cn/abtesting/latest/a-b-testing-50987201.html)。 -## 讨论 - -| 扫码加入神策数据开源社区 QQ 群
群号:785122381 | 扫码加入神策数据开源社区微信群 | -| ------ | ------ | -|![ QQ 讨论群](https://opensource.sensorsdata.cn/wp-content/uploads/ContentCommonPic_1.png) | ![ 微信讨论群 ](https://opensource.sensorsdata.cn/wp-content/uploads/ContentCommonPic_2.png) | - -## 公众号 - -| 扫码关注
神策数据开源社区 | 扫码关注
神策数据开源社区服务号 | -| ------ | ------ | -|![ 微信订阅号 ](https://opensource.sensorsdata.cn/wp-content/uploads/ContentCommonPic_3.png) | ![ 微信服务号 ](https://opensource.sensorsdata.cn/wp-content/uploads/ContentCommonPic_4.png) | - - ## 新书推荐 -| 《数据驱动:从方法到实践》 | 《Android 全埋点解决方案》 | 《iOS 全埋点解决方案》 +| [《数据驱动:从方法到实践》](https://item.jd.com/12322322.html) | [《Android 全埋点解决方案》](https://item.jd.com/12574672.html) | [《iOS 全埋点解决方案》](https://item.jd.com/12867068.html) | ------ | ------ | ------ | -| [![《数据驱动:从方法到实践》](https://opensource.sensorsdata.cn/wp-content/uploads/data_driven_book_1.jpg)](https://item.jd.com/12322322.html) | [![《Android 全埋点解决方案》](https://opensource.sensorsdata.cn/wp-content/uploads/Android-全埋点thumbnail_1.png)](https://item.jd.com/12574672.html) | [![《iOS 全埋点解决方案》](https://opensource.sensorsdata.cn/wp-content/uploads/iOS-全埋点thumbnail_1.png)](https://item.jd.com/12867068.html) ## License -Copyright 2015-2022 Sensors Data Inc. +Copyright 2015-2024 Sensors Data Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. From 1161fc9831eb77d06d4585c408c0b75925e33ac8 Mon Sep 17 00:00:00 2001 From: wangzhzh Date: Fri, 18 Jul 2025 17:00:27 +0800 Subject: [PATCH 13/13] Update README.md --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index b7f63b0..2d0f07e 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,15 @@ A/B Testing SDK 是一款用于 A/B 测试的 SDK。 +## 神策埋点 SDK 官网 +如需了解神策埋点 SDK 的更多商业授权信息,请访问[神策埋点 SDK 官网](https://jssdk.debugbox.sensorsdata.cn/)获取更多详细信息。 + +## 联系我们 +若您有商业合作或产品集成需求,请通过下面的渠道联系我们获取专业服务与支持。 + +| 加微信号:skycode008,或扫码添加联系人 | 扫码关注「神策埋点 SDK」公众号 ![gzh](https://github.com/sensorsdata/sa-sdk-android/blob/master/gzh.jpeg) | +| ------ | ------ | + ## 集成文档 请参考神策官网 [集成文档](https://manual.sensorsdata.cn/abtesting/latest/a-b-testing-50987201.html)。