Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
1717ed8a
U
uni-app
项目概览
DCloud
/
uni-app
3 个月 前同步成功
通知
725
Star
38705
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
7
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
7
Issue
7
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1717ed8a
编写于
5月 08, 2020
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
build:v3
上级
45070c09
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
41 addition
and
5 deletion
+41
-5
packages/uni-app-plus/dist/index.v3.js
packages/uni-app-plus/dist/index.v3.js
+41
-5
未找到文件。
packages/uni-app-plus/dist/index.v3.js
浏览文件 @
1717ed8a
...
@@ -1670,15 +1670,30 @@ var serviceContext = (function () {
...
@@ -1670,15 +1670,30 @@ var serviceContext = (function () {
// 参数格式化
// 参数格式化
params
.
url
=
encodeQueryString
(
url
);
params
.
url
=
encodeQueryString
(
url
);
// 主要拦截目标为用户快速点击时触发的多次跳转,该情况,通常前后 url 是一样的
if
(
navigatorLock
===
url
)
{
return
`
${
navigatorLock
}
locked`
}
// 至少 onLaunch 之后,再启用lock逻辑(onLaunch之前可能开发者手动调用路由API,来提前跳转)
// enableNavigatorLock 临时开关(不对外开放),避免该功能上线后,有部分情况异常,可以让开发者临时关闭 lock 功能
if
(
__uniConfig
.
ready
&&
__uniConfig
.
enableNavigatorLock
!==
false
)
{
navigatorLock
=
url
;
}
}
}
}
}
let
navigatorLock
;
function
createProtocol
(
type
,
extras
=
{})
{
function
createProtocol
(
type
,
extras
=
{})
{
return
Object
.
assign
({
return
Object
.
assign
({
url
:
{
url
:
{
type
:
String
,
type
:
String
,
required
:
true
,
required
:
true
,
validator
:
createValidator
(
type
)
validator
:
createValidator
(
type
)
},
beforeAll
()
{
navigatorLock
=
''
;
}
}
},
extras
)
},
extras
)
}
}
...
@@ -2305,7 +2320,9 @@ var serviceContext = (function () {
...
@@ -2305,7 +2320,9 @@ var serviceContext = (function () {
function
invokeCallbackHandlerFail
(
err
,
apiName
,
callbackId
)
{
function
invokeCallbackHandlerFail
(
err
,
apiName
,
callbackId
)
{
const
errMsg
=
`
${
apiName
}
:fail
${
err
}
`
;
const
errMsg
=
`
${
apiName
}
:fail
${
err
}
`
;
console
.
error
(
errMsg
);
if
(
process
.
env
.
NODE_ENV
!==
'
production
'
)
{
console
.
error
(
errMsg
);
}
if
(
callbackId
===
-
1
)
{
if
(
callbackId
===
-
1
)
{
throw
new
Error
(
errMsg
)
throw
new
Error
(
errMsg
)
}
}
...
@@ -2323,6 +2340,23 @@ var serviceContext = (function () {
...
@@ -2323,6 +2340,23 @@ var serviceContext = (function () {
required
:
true
required
:
true
}];
}];
// 目前已用到的仅这三个
// 完整的可能包含:
// beforeValidate,
// beforeSuccess,
// afterSuccess,
// beforeFail,
// afterFail,
// beforeCancel,
// afterCancel,
// beforeAll,
// afterAll
const
IGNORE_KEYS
=
[
'
beforeValidate
'
,
'
beforeAll
'
,
'
beforeSuccess
'
];
function
validateParams
(
apiName
,
paramsData
,
callbackId
)
{
function
validateParams
(
apiName
,
paramsData
,
callbackId
)
{
let
paramTypes
=
protocol
[
apiName
];
let
paramTypes
=
protocol
[
apiName
];
if
(
!
paramTypes
&&
isCallbackApi
(
apiName
))
{
if
(
!
paramTypes
&&
isCallbackApi
(
apiName
))
{
...
@@ -2352,7 +2386,7 @@ var serviceContext = (function () {
...
@@ -2352,7 +2386,7 @@ var serviceContext = (function () {
const
keys
=
Object
.
keys
(
paramTypes
);
const
keys
=
Object
.
keys
(
paramTypes
);
for
(
let
i
=
0
;
i
<
keys
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
keys
.
length
;
i
++
)
{
if
(
keys
[
i
]
===
'
beforeValidate
'
)
{
if
(
IGNORE_KEYS
.
indexOf
(
keys
[
i
])
!==
-
1
)
{
continue
continue
}
}
const
err
=
validateParam
(
keys
[
i
],
paramTypes
,
paramsData
);
const
err
=
validateParam
(
keys
[
i
],
paramTypes
,
paramsData
);
...
@@ -2434,6 +2468,7 @@ var serviceContext = (function () {
...
@@ -2434,6 +2468,7 @@ var serviceContext = (function () {
afterFail
,
afterFail
,
beforeCancel
,
beforeCancel
,
afterCancel
,
afterCancel
,
beforeAll
,
afterAll
afterAll
}
=
wrapperCallbacks
;
}
=
wrapperCallbacks
;
...
@@ -2457,6 +2492,8 @@ var serviceContext = (function () {
...
@@ -2457,6 +2492,8 @@ var serviceContext = (function () {
res
.
errMsg
=
apiName
+
'
:fail
'
+
errDetail
;
res
.
errMsg
=
apiName
+
'
:fail
'
+
errDetail
;
}
}
isFn
(
beforeAll
)
&&
beforeAll
(
res
);
const
errMsg
=
res
.
errMsg
;
const
errMsg
=
res
.
errMsg
;
if
(
errMsg
.
indexOf
(
apiName
+
'
:ok
'
)
===
0
)
{
if
(
errMsg
.
indexOf
(
apiName
+
'
:ok
'
)
===
0
)
{
...
@@ -2540,6 +2577,7 @@ var serviceContext = (function () {
...
@@ -2540,6 +2577,7 @@ var serviceContext = (function () {
function
wrapperExtras
(
name
,
extras
)
{
function
wrapperExtras
(
name
,
extras
)
{
const
protocolOptions
=
protocol
[
name
];
const
protocolOptions
=
protocol
[
name
];
if
(
protocolOptions
)
{
if
(
protocolOptions
)
{
isFn
(
protocolOptions
.
beforeAll
)
&&
(
extras
.
beforeAll
=
protocolOptions
.
beforeAll
);
isFn
(
protocolOptions
.
beforeSuccess
)
&&
(
extras
.
beforeSuccess
=
protocolOptions
.
beforeSuccess
);
isFn
(
protocolOptions
.
beforeSuccess
)
&&
(
extras
.
beforeSuccess
=
protocolOptions
.
beforeSuccess
);
}
}
}
}
...
@@ -8313,10 +8351,10 @@ var serviceContext = (function () {
...
@@ -8313,10 +8351,10 @@ var serviceContext = (function () {
$remove
()
{
$remove
()
{
const
index
=
pages
.
findIndex
(
page
=>
page
===
this
);
const
index
=
pages
.
findIndex
(
page
=>
page
===
this
);
if
(
index
!==
-
1
)
{
if
(
index
!==
-
1
)
{
pages
.
splice
(
index
,
1
);
if
(
!
webview
.
nvue
)
{
if
(
!
webview
.
nvue
)
{
this
.
$vm
.
$destroy
();
this
.
$vm
.
$destroy
();
}
}
pages
.
splice
(
index
,
1
);
if
(
process
.
env
.
NODE_ENV
!==
'
production
'
)
{
if
(
process
.
env
.
NODE_ENV
!==
'
production
'
)
{
console
.
log
(
'
[uni-app] removePage
'
,
path
,
webview
.
id
);
console
.
log
(
'
[uni-app] removePage
'
,
path
,
webview
.
id
);
}
}
...
@@ -12565,8 +12603,6 @@ var serviceContext = (function () {
...
@@ -12565,8 +12603,6 @@ var serviceContext = (function () {
handlers
.
forEach
(
handler
=>
{
handlers
.
forEach
(
handler
=>
{
handler
(
data
);
handler
(
data
);
});
});
}
else
{
console
.
error
(
`vdSync[
${
pageId
}
] not found`
);
}
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录