提交 09afc7b7 编写于 作者: Q qiang

Merge branch 'dev' of github.com:dcloudio/uni-app into dev

......@@ -10901,23 +10901,23 @@ var serviceContext = (function () {
uploadFile: uploadFile$1
});
const STORAGE_DATA_TYPE = '__TYPE';
const STORAGE_KEYS = 'uni-storage-keys';
function setStorage$1 ({
key,
data
} = {}) {
const value = {
type: typeof data === 'object' ? 'object' : 'string',
const type = typeof data;
const value = type === 'string' ? data : JSON.stringify({
type,
data: data
};
localStorage.setItem(key, JSON.stringify(value));
const keyList = localStorage.getItem('uni-storage-keys');
if (!keyList) {
localStorage.setItem('uni-storage-keys', JSON.stringify([key]));
} else {
const keys = JSON.parse(keyList);
if (keys.indexOf(key) < 0) {
keys.push(key);
localStorage.setItem('uni-storage-keys', JSON.stringify(keys));
});
try {
localStorage.setItem(key, value);
} catch (error) {
return {
errMsg: `setStorage:fail ${error}`
}
}
return {
......@@ -10935,13 +10935,33 @@ var serviceContext = (function () {
function getStorage$1 ({
key
} = {}) {
const data = localStorage.getItem(key);
return data ? {
data: JSON.parse(data).data,
const value = localStorage && localStorage.getItem(key);
if (typeof value !== 'string') {
return {
data: '',
errMsg: 'getStorage:fail'
}
}
let data = value;
try {
const object = JSON.parse(value);
// 兼容App端历史格式
const type = localStorage.getItem(key + STORAGE_DATA_TYPE);
if (!type) {
const keys = Object.keys(object);
if (keys.length === 2 && 'type' in object && 'data' in object) {
data = object.data;
} else if (keys.length === 1 && 'type' in object) {
data = '';
}
} else if (type !== 'String') {
data = object;
data = typeof data === 'string' ? JSON.parse(data) : data;
}
} catch (error) { }
return {
data,
errMsg: 'getStorage:ok'
} : {
data: '',
errMsg: 'getStorage:fail'
}
}
......@@ -10955,14 +10975,11 @@ var serviceContext = (function () {
function removeStorage$1 ({
key
} = {}) {
const keyList = localStorage.getItem('uni-storage-keys');
if (keyList) {
const keys = JSON.parse(keyList);
const index = keys.indexOf(key);
keys.splice(index, 1);
localStorage.setItem('uni-storage-keys', JSON.stringify(keys));
}
localStorage.removeItem(key);
if (localStorage) {
// 兼容App端历史格式
localStorage.removeItem(key + STORAGE_DATA_TYPE);
localStorage.removeItem(key);
}
return {
errMsg: 'removeStorage:ok'
}
......@@ -10975,7 +10992,7 @@ var serviceContext = (function () {
}
function clearStorage () {
localStorage.clear();
localStorage && localStorage.clear();
return {
errMsg: 'clearStorage:ok'
}
......@@ -10985,18 +11002,23 @@ var serviceContext = (function () {
clearStorage();
}
function getStorageInfo () { // TODO 暂时先不做大小的转换
const keyList = localStorage.getItem('uni-storage-keys');
return keyList ? {
keys: JSON.parse(keyList),
currentSize: 0,
limitSize: 0,
function getStorageInfo () {
const length = (localStorage && (localStorage.length || localStorage.getLength())) || 0;
const keys = [];
let currentSize = 0;
for (let index = 0; index < length; index++) {
const key = localStorage.key(index);
if (key !== STORAGE_KEYS && key.indexOf(STORAGE_DATA_TYPE) + STORAGE_DATA_TYPE.length !== key.length) {
const value = localStorage.getItem(key);
currentSize += key.length + value.length;
keys.push(key);
}
}
return {
keys,
currentSize: Math.ceil(currentSize * 2 / 1024),
limitSize: Number.MAX_VALUE,
errMsg: 'getStorageInfo:ok'
} : {
keys: '',
currentSize: 0,
limitSize: 0,
errMsg: 'getStorageInfo:fail'
}
}
......
......@@ -8,7 +8,6 @@ const {
} = require('@dcloudio/uni-template-compiler/lib/util')
const TAGS = [
'ad',
'text',
'image',
'input',
......
......@@ -5829,9 +5829,21 @@ function internalMixin(Vue) {
MP_METHODS.forEach(function (method) {
Vue.prototype[method] = function(args) {
if (this.$scope) {
if (this.$scope && this.$scope[method]) {
return this.$scope[method](args)
}
// mp-alipay
if(typeof my === 'undefined'){
return
}
if (method === 'createSelectorQuery') {
/* eslint-disable no-undef */
return my.createSelectorQuery(args)
} else if (method === 'createIntersectionObserver') {
/* eslint-disable no-undef */
return my.createIntersectionObserver(args)
}
// TODO mp-alipay 暂不支持 selectAllComponents,selectComponent
};
});
......
......@@ -88,6 +88,12 @@ export function createSelectorQuery () {
return this
}
}
if (!query.in) {
query.in = function () {
return this
}
}
return query
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册