提交 1f39a5c2 编写于 作者: DCloud-yyl's avatar DCloud-yyl

Merge branch 'dev' into alpha

...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
<button class="btn" type="button" data-action="navigateBack">navigateBack</button> <button class="btn" type="button" data-action="navigateBack">navigateBack</button>
<button class="btn" type="button" data-action="reLaunch">reLaunch</button> <button class="btn" type="button" data-action="reLaunch">reLaunch</button>
<button class="btn" type="button" data-action="switchTab">switchTab</button> <button class="btn" type="button" data-action="switchTab">switchTab</button>
<button class="btn" type="button" data-action="getEnv">getEnv</button>
</div> </div>
<p class="desc">网页向应用发送消息。注意:小程序端应用会在此页面后退时接收到消息。</p> <p class="desc">网页向应用发送消息。注意:小程序端应用会在此页面后退时接收到消息。</p>
<div class="btn-list"> <div class="btn-list">
...@@ -68,6 +69,13 @@ ...@@ -68,6 +69,13 @@
delta: 1 delta: 1
}); });
break; break;
case 'getEnv':
uni.getEnv((res) => {
uni.postMessage({
data: res
})
});
break;
default: default:
uni[action]({ uni[action]({
url: '/pages/component/button/button' url: '/pages/component/button/button'
......
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e=e||self).uni=n()}(this,(function(){"use strict";try{var e={};Object.defineProperty(e,"passive",{get:function(){!0}}),window.addEventListener("test-passive",null,e)}catch(e){}var n=Object.prototype.hasOwnProperty;function i(e,i){return n.call(e,i)}var t=[];function o(){return window.__dcloud_weex_postMessage||window.__dcloud_weex_}var a=function(e,n){var i={options:{timestamp:+new Date},name:e,arg:n};if(window.__uniapp_x_postMessage||window.__uniapp_x_){if("postMessage"===e){var a={data:n};return window.__uniapp_x_postMessage?window.__uniapp_x_postMessage(a):window.__uniapp_x_.postMessage(JSON.stringify(a))}var r={type:"WEB_INVOKE_APPSERVICE",args:{data:i,webviewIds:t}};window.__uniapp_x_postMessage?window.__uniapp_x_postMessageToService(r):window.__uniapp_x_.postMessageToService(JSON.stringify(r))}else if(o()){if("postMessage"===e){var d={data:[n]};return window.__dcloud_weex_postMessage?window.__dcloud_weex_postMessage(d):window.__dcloud_weex_.postMessage(JSON.stringify(d))}var s={type:"WEB_INVOKE_APPSERVICE",args:{data:i,webviewIds:t}};window.__dcloud_weex_postMessage?window.__dcloud_weex_postMessageToService(s):window.__dcloud_weex_.postMessageToService(JSON.stringify(s))}else{if(!window.plus)return window.parent.postMessage({type:"WEB_INVOKE_APPSERVICE",data:i,pageId:""},"*");if(0===t.length){var w=plus.webview.currentWebview();if(!w)throw new Error("plus.webview.currentWebview() is undefined");var u=w.parent(),g="";g=u?u.id:w.id,t.push(g)}if(plus.webview.getWebviewById("__uniapp__service"))plus.webview.postMessageToUniNView({type:"WEB_INVOKE_APPSERVICE",args:{data:i,webviewIds:t}},"__uniapp__service");else{var v=JSON.stringify(i);plus.webview.getLaunchWebview().evalJS('UniPlusBridge.subscribeHandler("'.concat("WEB_INVOKE_APPSERVICE",'",').concat(v,",").concat(JSON.stringify(t),");"))}}},r={navigateTo:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("navigateTo",{url:encodeURI(n)})},navigateBack:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.delta;a("navigateBack",{delta:parseInt(n)||1})},switchTab:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("switchTab",{url:encodeURI(n)})},reLaunch:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("reLaunch",{url:encodeURI(n)})},redirectTo:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;a("redirectTo",{url:encodeURI(n)})},getEnv:function(e){o()?e({nvue:!0}):window.plus?e({plus:!0}):e({h5:!0})},postMessage:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};a("postMessage",e.data||{})}},d=/uni-app/i.test(navigator.userAgent),s=/Html5Plus/i.test(navigator.userAgent),w=/complete|loaded|interactive/;var u=window.my&&navigator.userAgent.indexOf(["t","n","e","i","l","C","y","a","p","i","l","A"].reverse().join(""))>-1;var g=window.swan&&window.swan.webView&&/swan/i.test(navigator.userAgent);var v=window.qq&&window.qq.miniProgram&&/QQ/i.test(navigator.userAgent)&&/miniProgram/i.test(navigator.userAgent);var c=window.tt&&window.tt.miniProgram&&/toutiaomicroapp/i.test(navigator.userAgent);var p=window.wx&&window.wx.miniProgram&&/micromessenger/i.test(navigator.userAgent)&&/miniProgram/i.test(navigator.userAgent);var _=window.qa&&/quickapp/i.test(navigator.userAgent);var m=window.ks&&window.ks.miniProgram&&/micromessenger/i.test(navigator.userAgent)&&/miniProgram/i.test(navigator.userAgent);var f=window.tt&&window.tt.miniProgram&&/Lark|Feishu/i.test(navigator.userAgent);var l=window.jd&&window.jd.miniProgram&&/micromessenger/i.test(navigator.userAgent)&&/miniProgram/i.test(navigator.userAgent);var E=window.xhs&&window.xhs.miniProgram&&/xhsminiapp/i.test(navigator.userAgent);for(var x,S=function(){window.UniAppJSBridge=!0,document.dispatchEvent(new CustomEvent("UniAppJSBridgeReady",{bubbles:!0,cancelable:!0}))},h=[function(e){if(d||s)return window.__uniapp_x_postMessage||window.__uniapp_x_||window.__dcloud_weex_postMessage||window.__dcloud_weex_?document.addEventListener("DOMContentLoaded",e):window.plus&&w.test(document.readyState)?setTimeout(e,0):document.addEventListener("plusready",e),r},function(e){if(p)return window.WeixinJSBridge&&window.WeixinJSBridge.invoke?setTimeout(e,0):document.addEventListener("WeixinJSBridgeReady",e),window.wx.miniProgram},function(e){if(v)return window.QQJSBridge&&window.QQJSBridge.invoke?setTimeout(e,0):document.addEventListener("QQJSBridgeReady",e),window.qq.miniProgram},function(e){if(u){document.addEventListener("DOMContentLoaded",e);var n=window.my;return{navigateTo:n.navigateTo,navigateBack:n.navigateBack,switchTab:n.switchTab,reLaunch:n.reLaunch,redirectTo:n.redirectTo,postMessage:n.postMessage,getEnv:n.getEnv}}},function(e){if(g)return document.addEventListener("DOMContentLoaded",e),window.swan.webView},function(e){if(c)return document.addEventListener("DOMContentLoaded",e),window.tt.miniProgram},function(e){if(_){window.QaJSBridge&&window.QaJSBridge.invoke?setTimeout(e,0):document.addEventListener("QaJSBridgeReady",e);var n=window.qa;return{navigateTo:n.navigateTo,navigateBack:n.navigateBack,switchTab:n.switchTab,reLaunch:n.reLaunch,redirectTo:n.redirectTo,postMessage:n.postMessage,getEnv:n.getEnv}}},function(e){if(m)return window.WeixinJSBridge&&window.WeixinJSBridge.invoke?setTimeout(e,0):document.addEventListener("WeixinJSBridgeReady",e),window.ks.miniProgram},function(e){if(f)return document.addEventListener("DOMContentLoaded",e),window.tt.miniProgram},function(e){if(l)return window.JDJSBridgeReady&&window.JDJSBridgeReady.invoke?setTimeout(e,0):document.addEventListener("JDJSBridgeReady",e),window.jd.miniProgram},function(e){if(E)return window.xhs.miniProgram},function(e){return document.addEventListener("DOMContentLoaded",e),r}],y=0;y<h.length&&!(x=h[y](S));y++);x||(x={});var M="undefined"!=typeof uni?uni:{};if(!M.navigateTo)for(var P in x)i(x,P)&&(M[P]=x[P]);return M.webView=x,M})); !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e=e||self).uni=n()}(this,(function(){"use strict";try{var e={};Object.defineProperty(e,"passive",{get:function(){!0}}),window.addEventListener("test-passive",null,e)}catch(e){}var n=Object.prototype.hasOwnProperty;function i(e,i){return n.call(e,i)}var t=[];function o(){return window.__dcloud_weex_postMessage||window.__dcloud_weex_}function a(){return window.__uniapp_x_postMessage||window.__uniapp_x_}var r=function(e,n){var i={options:{timestamp:+new Date},name:e,arg:n};if(a()){if("postMessage"===e){var r={data:n};return window.__uniapp_x_postMessage?window.__uniapp_x_postMessage(r):window.__uniapp_x_.postMessage(JSON.stringify(r))}var d={type:"WEB_INVOKE_APPSERVICE",args:{data:i,webviewIds:t}};window.__uniapp_x_postMessage?window.__uniapp_x_postMessageToService(d):window.__uniapp_x_.postMessageToService(JSON.stringify(d))}else if(o()){if("postMessage"===e){var s={data:[n]};return window.__dcloud_weex_postMessage?window.__dcloud_weex_postMessage(s):window.__dcloud_weex_.postMessage(JSON.stringify(s))}var w={type:"WEB_INVOKE_APPSERVICE",args:{data:i,webviewIds:t}};window.__dcloud_weex_postMessage?window.__dcloud_weex_postMessageToService(w):window.__dcloud_weex_.postMessageToService(JSON.stringify(w))}else{if(!window.plus)return window.parent.postMessage({type:"WEB_INVOKE_APPSERVICE",data:i,pageId:""},"*");if(0===t.length){var u=plus.webview.currentWebview();if(!u)throw new Error("plus.webview.currentWebview() is undefined");var g=u.parent(),v="";v=g?g.id:u.id,t.push(v)}if(plus.webview.getWebviewById("__uniapp__service"))plus.webview.postMessageToUniNView({type:"WEB_INVOKE_APPSERVICE",args:{data:i,webviewIds:t}},"__uniapp__service");else{var c=JSON.stringify(i);plus.webview.getLaunchWebview().evalJS('UniPlusBridge.subscribeHandler("'.concat("WEB_INVOKE_APPSERVICE",'",').concat(c,",").concat(JSON.stringify(t),");"))}}},d={navigateTo:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;r("navigateTo",{url:encodeURI(n)})},navigateBack:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.delta;r("navigateBack",{delta:parseInt(n)||1})},switchTab:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;r("switchTab",{url:encodeURI(n)})},reLaunch:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;r("reLaunch",{url:encodeURI(n)})},redirectTo:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.url;r("redirectTo",{url:encodeURI(n)})},getEnv:function(e){a()?e({uvue:!0}):o()?e({nvue:!0}):window.plus?e({plus:!0}):e({h5:!0})},postMessage:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r("postMessage",e.data||{})}},s=/uni-app/i.test(navigator.userAgent),w=/Html5Plus/i.test(navigator.userAgent),u=/complete|loaded|interactive/;var g=window.my&&navigator.userAgent.indexOf(["t","n","e","i","l","C","y","a","p","i","l","A"].reverse().join(""))>-1;var v=window.swan&&window.swan.webView&&/swan/i.test(navigator.userAgent);var c=window.qq&&window.qq.miniProgram&&/QQ/i.test(navigator.userAgent)&&/miniProgram/i.test(navigator.userAgent);var p=window.tt&&window.tt.miniProgram&&/toutiaomicroapp/i.test(navigator.userAgent);var _=window.wx&&window.wx.miniProgram&&/micromessenger/i.test(navigator.userAgent)&&/miniProgram/i.test(navigator.userAgent);var m=window.qa&&/quickapp/i.test(navigator.userAgent);var f=window.ks&&window.ks.miniProgram&&/micromessenger/i.test(navigator.userAgent)&&/miniProgram/i.test(navigator.userAgent);var l=window.tt&&window.tt.miniProgram&&/Lark|Feishu/i.test(navigator.userAgent);var E=window.jd&&window.jd.miniProgram&&/micromessenger/i.test(navigator.userAgent)&&/miniProgram/i.test(navigator.userAgent);var x=window.xhs&&window.xhs.miniProgram&&/xhsminiapp/i.test(navigator.userAgent);for(var S,h=function(){window.UniAppJSBridge=!0,document.dispatchEvent(new CustomEvent("UniAppJSBridgeReady",{bubbles:!0,cancelable:!0}))},y=[function(e){if(s||w)return window.__uniapp_x_postMessage||window.__uniapp_x_||window.__dcloud_weex_postMessage||window.__dcloud_weex_?document.addEventListener("DOMContentLoaded",e):window.plus&&u.test(document.readyState)?setTimeout(e,0):document.addEventListener("plusready",e),d},function(e){if(_)return window.WeixinJSBridge&&window.WeixinJSBridge.invoke?setTimeout(e,0):document.addEventListener("WeixinJSBridgeReady",e),window.wx.miniProgram},function(e){if(c)return window.QQJSBridge&&window.QQJSBridge.invoke?setTimeout(e,0):document.addEventListener("QQJSBridgeReady",e),window.qq.miniProgram},function(e){if(g){document.addEventListener("DOMContentLoaded",e);var n=window.my;return{navigateTo:n.navigateTo,navigateBack:n.navigateBack,switchTab:n.switchTab,reLaunch:n.reLaunch,redirectTo:n.redirectTo,postMessage:n.postMessage,getEnv:n.getEnv}}},function(e){if(v)return document.addEventListener("DOMContentLoaded",e),window.swan.webView},function(e){if(p)return document.addEventListener("DOMContentLoaded",e),window.tt.miniProgram},function(e){if(m){window.QaJSBridge&&window.QaJSBridge.invoke?setTimeout(e,0):document.addEventListener("QaJSBridgeReady",e);var n=window.qa;return{navigateTo:n.navigateTo,navigateBack:n.navigateBack,switchTab:n.switchTab,reLaunch:n.reLaunch,redirectTo:n.redirectTo,postMessage:n.postMessage,getEnv:n.getEnv}}},function(e){if(f)return window.WeixinJSBridge&&window.WeixinJSBridge.invoke?setTimeout(e,0):document.addEventListener("WeixinJSBridgeReady",e),window.ks.miniProgram},function(e){if(l)return document.addEventListener("DOMContentLoaded",e),window.tt.miniProgram},function(e){if(E)return window.JDJSBridgeReady&&window.JDJSBridgeReady.invoke?setTimeout(e,0):document.addEventListener("JDJSBridgeReady",e),window.jd.miniProgram},function(e){if(x)return window.xhs.miniProgram},function(e){return document.addEventListener("DOMContentLoaded",e),d}],M=0;M<y.length&&!(S=y[M](h));M++);S||(S={});var P="undefined"!=typeof uni?uni:{};if(!P.navigateTo)for(var b in S)i(S,b)&&(P[b]=S[b]);return P.webView=S,P}));
...@@ -4,7 +4,7 @@ module.exports = { ...@@ -4,7 +4,7 @@ module.exports = {
watchPathIgnorePatterns: ['/node_modules/', '/dist/', '/.git/'], watchPathIgnorePatterns: ['/node_modules/', '/dist/', '/.git/'],
moduleFileExtensions: ['js', 'json'], moduleFileExtensions: ['js', 'json'],
rootDir: __dirname, rootDir: __dirname,
testMatch: ["<rootDir>/pages/API/storage/storage.test.js"], testMatch: ["<rootDir>/pages/**/*test.[jt]s?(x)"],
testPathIgnorePatterns: ['/node_modules/'], testPathIgnorePatterns: ['/node_modules/'],
setupFilesAfterEnv: ['<rootDir>/jest-setup.js'], setupFilesAfterEnv: ['<rootDir>/jest-setup.js'],
} }
...@@ -13,7 +13,9 @@ describe('page-scroll-to', () => { ...@@ -13,7 +13,9 @@ describe('page-scroll-to', () => {
await page.waitFor(300) await page.waitFor(300)
const scrollTop = await page.scrollTop() const scrollTop = await page.scrollTop()
expect(scrollTop).toBe(100)
// 设备精度问题,允许上下浮动 1px
expect(scrollTop > 99 && scrollTop < 101).toBe(true)
}) })
it('scroll-to-element', async () => { it('scroll-to-element', async () => {
const btnScrollTo = await page.$('.btn-scrollToElement') const btnScrollTo = await page.$('.btn-scrollToElement')
...@@ -25,4 +27,4 @@ describe('page-scroll-to', () => { ...@@ -25,4 +27,4 @@ describe('page-scroll-to', () => {
const offset = await scrollToElement.offset() const offset = await scrollToElement.offset()
expect(offset.top >= 1188).toBe(true) expect(offset.top >= 1188).toBe(true)
}) })
}) })
\ No newline at end of file
...@@ -32,6 +32,23 @@ describe('ExtApi-StorageInfoTest', () => { ...@@ -32,6 +32,23 @@ describe('ExtApi-StorageInfoTest', () => {
await page.waitFor(600) await page.waitFor(600)
expect(await getData('apiGetData')).toEqual("长安大道连狭斜,青牛白马七香车。玉辇纵横过主第,金鞭络绎向侯家。龙衔宝盖承朝日,凤吐流苏带晚霞。百尺游丝争绕树,一群娇鸟共啼花。游蜂戏蝶千门侧,碧树银台万种色。复道交窗作合欢,双阙连甍垂凤翼。") expect(await getData('apiGetData')).toEqual("长安大道连狭斜,青牛白马七香车。玉辇纵横过主第,金鞭络绎向侯家。龙衔宝盖承朝日,凤吐流苏带晚霞。百尺游丝争绕树,一群娇鸟共啼花。游蜂戏蝶千门侧,碧树银台万种色。复道交窗作合欢,双阙连甍垂凤翼。")
// 测试 clear
let btnGetStorageInfoASyncButton = await page.$('.btn-getStorageInfoASync')
await btnGetStorageInfoASyncButton.tap()
await page.waitFor(600)
storageInfoRet = await getData('apiGetData')
expect(storageInfoRet.keys[0]).toEqual("autotest_key_mock")
const btnClearStorageInfoASyncButton = await page.$('.btn-clearStorageInfoASync')
await btnClearStorageInfoASyncButton.tap()
page.waitFor(600)
await btnGetStorageInfoASyncButton.tap()
await page.waitFor(600)
storageInfoRet = await getData('apiGetData')
expect(storageInfoRet.keys.length).toEqual(0)
await page.setData({ await page.setData({
key: "autotest_key_mock", key: "autotest_key_mock",
data:1100.8989 data:1100.8989
...@@ -43,6 +60,23 @@ describe('ExtApi-StorageInfoTest', () => { ...@@ -43,6 +60,23 @@ describe('ExtApi-StorageInfoTest', () => {
await page.waitFor(600) await page.waitFor(600)
expect(await getData('apiGetData')).toEqual(1100.8989) expect(await getData('apiGetData')).toEqual(1100.8989)
// 测试 remove
await btnGetStorageInfoASyncButton.tap()
await page.waitFor(600)
storageInfoRet = await getData('apiGetData')
expect(storageInfoRet.keys[0]).toEqual("autotest_key_mock")
const btnRemoveStorageInfoASyncButton = await page.$('.btn-removeStorageInfoASync')
await btnRemoveStorageInfoASyncButton.tap()
page.waitFor(600)
await btnGetStorageInfoASyncButton.tap()
await page.waitFor(600)
storageInfoRet = await getData('apiGetData')
expect(storageInfoRet.keys.length).toEqual(0)
await page.setData({ await page.setData({
key: "autotest_key_mock", key: "autotest_key_mock",
data:123456789 data:123456789
...@@ -71,16 +105,20 @@ describe('ExtApi-StorageInfoTest', () => { ...@@ -71,16 +105,20 @@ describe('ExtApi-StorageInfoTest', () => {
await page.setData({ await page.setData({
key: "autotest_key_mock", key: "autotest_key_mock",
data:"长安大道连狭斜,青牛白马七香车。玉辇纵横过主第,金鞭络绎向侯家。龙衔宝盖承朝日,凤吐流苏带晚霞。百尺游丝争绕树,一群娇鸟共啼花。游蜂戏蝶千门侧,碧树银台万种色。复道交窗作合欢,双阙连甍垂凤翼。" data:{
name:"zhangsan",
age:122
}
}) })
await page.waitFor(600) await page.waitFor(600)
const btnSetStorageButtonInfo2 = await page.$('.btn-setstorageSync') await btnSetStorageButtonInfo.tap()
await btnSetStorageButtonInfo2.tap()
await page.waitFor(600) await page.waitFor(600)
const btnGetStorageButtonInfo2 = await page.$('.btn-getstorageSync') await btnGetStorageButtonInfo.tap()
await btnGetStorageButtonInfo2.tap()
await page.waitFor(600) await page.waitFor(600)
expect(await getData('apiGetData')).toEqual("长安大道连狭斜,青牛白马七香车。玉辇纵横过主第,金鞭络绎向侯家。龙衔宝盖承朝日,凤吐流苏带晚霞。百尺游丝争绕树,一群娇鸟共啼花。游蜂戏蝶千门侧,碧树银台万种色。复道交窗作合欢,双阙连甍垂凤翼。") let objRet = await getData('apiGetData')
expect(objRet.age).toEqual(122)
}); });
...@@ -93,14 +131,95 @@ describe('ExtApi-StorageInfoTest', () => { ...@@ -93,14 +131,95 @@ describe('ExtApi-StorageInfoTest', () => {
data:"长安大道连狭斜,青牛白马七香车。玉辇纵横过主第,金鞭络绎向侯家。龙衔宝盖承朝日,凤吐流苏带晚霞。百尺游丝争绕树,一群娇鸟共啼花。游蜂戏蝶千门侧,碧树银台万种色。复道交窗作合欢,双阙连甍垂凤翼。" data:"长安大道连狭斜,青牛白马七香车。玉辇纵横过主第,金鞭络绎向侯家。龙衔宝盖承朝日,凤吐流苏带晚霞。百尺游丝争绕树,一群娇鸟共啼花。游蜂戏蝶千门侧,碧树银台万种色。复道交窗作合欢,双阙连甍垂凤翼。"
}) })
await page.waitFor(600) await page.waitFor(600)
const btnSetStorageButtonInfo = await page.$('.btn-setstorageSync') let btnSetStorageButtonInfo = await page.$('.btn-setstorageSync')
await btnSetStorageButtonInfo.tap() await btnSetStorageButtonInfo.tap()
await page.waitFor(600) await page.waitFor(600)
const btnGetStorageButtonInfo = await page.$('.btn-getstorageSync') let btnGetStorageButtonInfo = await page.$('.btn-getstorageSync')
await btnGetStorageButtonInfo.tap() await btnGetStorageButtonInfo.tap()
await page.waitFor(600) await page.waitFor(600)
expect(await getData('apiGetData')).toEqual("长安大道连狭斜,青牛白马七香车。玉辇纵横过主第,金鞭络绎向侯家。龙衔宝盖承朝日,凤吐流苏带晚霞。百尺游丝争绕树,一群娇鸟共啼花。游蜂戏蝶千门侧,碧树银台万种色。复道交窗作合欢,双阙连甍垂凤翼。") expect(await getData('apiGetData')).toEqual("长安大道连狭斜,青牛白马七香车。玉辇纵横过主第,金鞭络绎向侯家。龙衔宝盖承朝日,凤吐流苏带晚霞。百尺游丝争绕树,一群娇鸟共啼花。游蜂戏蝶千门侧,碧树银台万种色。复道交窗作合欢,双阙连甍垂凤翼。")
// 测试clear
const btnGetStorageInfoSyncButton = await page.$('.btn-getStorageInfoSync')
await btnGetStorageInfoSyncButton.tap()
await page.waitFor(600)
let storageInfoRet = await getData('apiGetData')
expect(storageInfoRet.keys[0]).toEqual("autotest_key_mock")
const btnClearStorageInfoSyncButton = await page.$('.btn-clearStorageInfoSync')
await btnClearStorageInfoSyncButton.tap()
await btnGetStorageInfoSyncButton.tap()
await page.waitFor(600)
storageInfoRet = await getData('apiGetData')
expect(storageInfoRet.keys.length).toEqual(0)
await page.setData({
key: "autotest_key_mock",
data:12345789.235689
})
await page.waitFor(600)
btnSetStorageButtonInfo = await page.$('.btn-setstorageSync')
await btnSetStorageButtonInfo.tap()
await page.waitFor(600)
btnGetStorageButtonInfo = await page.$('.btn-getstorageSync')
await btnGetStorageButtonInfo.tap()
await page.waitFor(600)
expect(await getData('apiGetData')).toEqual(12345789.235689)
// 测试 remove
await btnGetStorageInfoSyncButton.tap()
await page.waitFor(600)
storageInfoRet = await getData('apiGetData')
expect(storageInfoRet.keys[0]).toEqual("autotest_key_mock")
const btnRemoveStorageInfoSyncButton = await page.$('.btn-removeStorageInfoSync')
await btnRemoveStorageInfoSyncButton.tap()
page.waitFor(600)
await btnGetStorageInfoSyncButton.tap()
await page.waitFor(600)
storageInfoRet = await getData('apiGetData')
expect(storageInfoRet.keys.length).toEqual(0)
await page.setData({
key: "autotest_key_mock",
data:0
})
await page.waitFor(600)
btnSetStorageButtonInfo = await page.$('.btn-setstorageSync')
await btnSetStorageButtonInfo.tap()
await page.waitFor(600)
btnGetStorageButtonInfo = await page.$('.btn-getstorageSync')
await btnGetStorageButtonInfo.tap()
await page.waitFor(600)
expect(await getData('apiGetData')).toEqual(0)
await page.setData({
key: "autotest_key_mock",
data:{
name:"tom",
age:10
}
})
await page.waitFor(600)
btnSetStorageButtonInfo = await page.$('.btn-setstorageSync')
await btnSetStorageButtonInfo.tap()
await page.waitFor(600)
btnGetStorageButtonInfo = await page.$('.btn-getstorageSync')
await btnGetStorageButtonInfo.tap()
await page.waitFor(600)
let objRet = await getData('apiGetData')
expect(objRet.name).toEqual("tom")
}); });
}); });
...@@ -39,12 +39,12 @@ ...@@ -39,12 +39,12 @@
</view> </view>
<view class="uni-padding-wrap"> <view class="uni-padding-wrap">
<view class="uni-btn-v"> <view class="uni-btn-v">
<button class="uni-btn" type="primary" @tap="getStorageInfo"> <button class="uni-btn btn-getStorageInfoASync" type="primary" @tap="getStorageInfo">
获取存储概述-同步
</button>
<button class="uni-btn" @tap="getStorageInfoSync">
获取存储概述-异步 获取存储概述-异步
</button> </button>
<button class="uni-btn btn-getStorageInfoSync" @tap="getStorageInfoSync">
获取存储概述-同步
</button>
</view> </view>
<text>{{ storageInfo }}</text> <text>{{ storageInfo }}</text>
<view class="uni-flex uni-row"> <view class="uni-flex uni-row">
...@@ -90,8 +90,8 @@ ...@@ -90,8 +90,8 @@
存储数据-异步 存储数据-异步
</button> </button>
<button class="uni-btn btn-getstorageAsync" @tap="getStorage">读取数据-异步</button> <button class="uni-btn btn-getstorageAsync" @tap="getStorage">读取数据-异步</button>
<button class="uni-btn" @tap="removeStorage">移除数据-异步</button> <button class="uni-btn btn-removeStorageInfoASync" @tap="removeStorage">移除数据-异步</button>
<button class="uni-btn" @tap="clearStorage">清理数据-异步</button> <button class="uni-btn btn-clearStorageInfoASync" @tap="clearStorage">清理数据-异步</button>
</view> </view>
<view class="uni-btn-v"> <view class="uni-btn-v">
...@@ -103,10 +103,10 @@ ...@@ -103,10 +103,10 @@
存储数据-同步 存储数据-同步
</button> </button>
<button class="uni-btn btn-getstorageSync" @tap="getStorageSync">读取数据-同步</button> <button class="uni-btn btn-getstorageSync" @tap="getStorageSync">读取数据-同步</button>
<button class="uni-btn" @tap="removeStorageSync"> <button class="uni-btn btn-removeStorageInfoSync" @tap="removeStorageSync">
移除数据-同步 移除数据-同步
</button> </button>
<button class="uni-btn" @tap="clearStorageSync"> <button class="uni-btn btn-clearStorageInfoSync" @tap="clearStorageSync">
清理数据-同步 清理数据-同步
</button> </button>
</view> </view>
...@@ -131,15 +131,17 @@ export default { ...@@ -131,15 +131,17 @@ export default {
methods: { methods: {
getStorageInfo() { getStorageInfo() {
uni.getStorageInfo({ uni.getStorageInfo({
success: function (res) { success: function (res) {
this.apiGetData = res
this.storageInfo = JSON.stringify(res) this.storageInfo = JSON.stringify(res)
}, },
}) })
}, },
getStorageInfoSync() { getStorageInfoSync() {
try { try {
const res = uni.getStorageInfoSync() const res = uni.getStorageInfoSync()
this.storageInfo = JSON.stringify(res) this.apiGetData = res
this.storageInfo = JSON.stringify(res)
} catch (e) { } catch (e) {
// error // error
console.log(e) console.log(e)
...@@ -195,10 +197,18 @@ export default { ...@@ -195,10 +197,18 @@ export default {
uni.getStorage({ uni.getStorage({
key: key, key: key,
success: (res) => { success: (res) => {
that.apiGetData = res.data that.apiGetData = res.data
let desc:string = typeof this.apiGetData
if("object" == desc){
desc = desc + ": " + JSON.stringify(this.apiGetData)
}else{
desc = desc + ": " + this.apiGetData
}
uni.showModal({ uni.showModal({
title: '读取数据成功', title: '读取数据成功',
content: "data: '" + JSON.stringify(that.apiGetData) + "'", content: desc,
showCancel: false, showCancel: false,
}) })
}, },
...@@ -221,10 +231,18 @@ export default { ...@@ -221,10 +231,18 @@ export default {
showCancel: false, showCancel: false,
}) })
} else { } else {
this.apiGetData = uni.getStorageSync(key) this.apiGetData = uni.getStorageSync(key)
let desc:string = typeof this.apiGetData
if("object" == desc){
desc = desc + ": " + JSON.stringify(this.apiGetData)
}else{
desc = desc + ": " + this.apiGetData
}
uni.showModal({ uni.showModal({
title: '读取数据成功', title: '读取数据成功',
content: "data: '" + JSON.stringify(apiGetData) + "'", content: desc,
showCancel: false, showCancel: false,
}) })
} }
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<!-- 暂时分成两个方向不同的滚动视图,原因为:scroll-x或scroll-y属性一经设置不能动态改变。 --> <!-- 暂时分成两个方向不同的滚动视图,原因为:scroll-x或scroll-y属性一经设置不能动态改变。 -->
<scroll-view v-if="scrollX" :scroll-x="true" :scroll-y="false" :scroll-top="scrollTop" :scroll-left="scrollLeft" <scroll-view v-if="scrollX" :scroll-x="true" :scroll-y="false" :scroll-top="scrollTop" :scroll-left="scrollLeft"
:upper-threshold="upperThreshold" :lower-threshold="lowerThreshold" :scroll-into-view="scrollIntoView" :upper-threshold="upperThreshold" :lower-threshold="lowerThreshold" :scroll-into-view="scrollIntoView"
:enable-back-to-top="enableBackToTop" :scroll-with-animation="scrollWithAnimation" :enable-back-to-top="enableBackToTop" :scroll-with-animation="scrollWithAnimation" style="flex-direction: row;"
:show-scrollbar="showScrollbar" :rebound="rebound" @scrolltoupper="scrolltoupper" :show-scrollbar="showScrollbar" :rebound="rebound" @scrolltoupper="scrolltoupper"
@scrolltolower="scrolltolower" @scroll="scroll" @scrollend="scrollend" ref="scrollViewX" id="scrollViewX"> @scrolltolower="scrolltolower" @scroll="scroll" @scrollend="scrollend" ref="scrollViewX" id="scrollViewX">
<view class="item" :id="'horizontal_'+item.id" v-for="(item,_) in items"> <view class="item" :id="'horizontal_'+item.id" v-for="(item,_) in items">
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册