Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
8cb77614
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,发现更多精彩内容 >>
提交
8cb77614
编写于
8月 26, 2021
作者:
L
liuxiaohang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(mp-toutiao): 修复 字节小程序$emit不触发 fixed #2774
上级
d5466f64
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
138 addition
and
128 deletion
+138
-128
packages/uni-mp-toutiao/dist/index.js
packages/uni-mp-toutiao/dist/index.js
+132
-126
src/platforms/mp-weixin/runtime/index.js
src/platforms/mp-weixin/runtime/index.js
+6
-2
未找到文件。
packages/uni-mp-toutiao/dist/index.js
浏览文件 @
8cb77614
import
Vue
from
'
vue
'
;
import
Vue
from
'
vue
'
;
function
b64DecodeUnicode
(
str
)
{
return
decodeURIComponent
(
atob
(
str
).
split
(
''
).
map
(
function
(
c
)
{
return
'
%
'
+
(
'
00
'
+
c
.
charCodeAt
(
0
).
toString
(
16
)).
slice
(
-
2
)
...
...
@@ -48,8 +48,8 @@ function uniIdMixin (Vue) {
}
=
getCurrentUserInfo
();
return
tokenExpired
>
Date
.
now
()
};
}
}
const
_toString
=
Object
.
prototype
.
toString
;
const
hasOwnProperty
=
Object
.
prototype
.
hasOwnProperty
;
...
...
@@ -88,8 +88,8 @@ function cached (fn) {
const
camelizeRE
=
/-
(\w)
/g
;
const
camelize
=
cached
((
str
)
=>
{
return
str
.
replace
(
camelizeRE
,
(
_
,
c
)
=>
c
?
c
.
toUpperCase
()
:
''
)
});
});
const
HOOKS
=
[
'
invoke
'
,
'
success
'
,
...
...
@@ -192,7 +192,7 @@ function queue (hooks, data) {
}
if
(
res
===
false
)
{
return
{
then
()
{}
then
()
{
}
}
}
}
...
...
@@ -272,16 +272,20 @@ const promiseInterceptor = {
if
(
!
isPromise
(
res
))
{
return
res
}
return
res
.
then
(
res
=>
{
return
res
[
1
]
}).
catch
(
res
=>
{
return
res
[
0
]
return
new
Promise
((
resolve
,
reject
)
=>
{
res
.
then
(
res
=>
{
if
(
res
[
0
])
{
reject
(
res
[
0
]);
}
else
{
resolve
(
res
[
1
]);
}
});
})
}
};
};
const
SYNC_API_RE
=
/^
\$
|Window$|WindowStyle$|sendNativeEvent|restoreGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/
;
/^
\$
|Window$|WindowStyle$|sendNativeEvent|restoreGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64
|getLocale|setLocale
/
;
const
CONTEXT_API_RE
=
/^create|Manager$/
;
...
...
@@ -350,8 +354,8 @@ function promisify (name, api) {
}),
...
params
);
})))
}
}
}
const
EPS
=
1
e
-
4
;
const
BASE_DEVICE_WIDTH
=
750
;
let
isIOS
=
false
;
...
...
@@ -392,20 +396,20 @@ function upx2px (number, newDeviceWidth) {
}
}
return
number
<
0
?
-
result
:
result
}
}
const
interceptors
=
{
promiseInterceptor
};
var
baseApi
=
/*#__PURE__*/
Object
.
freeze
({
__proto__
:
null
,
upx2px
:
upx2px
,
addInterceptor
:
addInterceptor
,
removeInterceptor
:
removeInterceptor
,
interceptors
:
interceptors
});
};
var
baseApi
=
/*#__PURE__*/
Object
.
freeze
({
__proto__
:
null
,
upx2px
:
upx2px
,
addInterceptor
:
addInterceptor
,
removeInterceptor
:
removeInterceptor
,
interceptors
:
interceptors
});
class
EventChannel
{
constructor
(
id
,
events
)
{
this
.
id
=
id
;
...
...
@@ -472,8 +476,8 @@ class EventChannel {
type
});
}
}
}
const
eventChannels
=
{};
const
eventChannelStack
=
[];
...
...
@@ -509,8 +513,8 @@ var navigateTo = {
returnValue
(
fromRes
,
toRes
)
{
fromRes
.
eventChannel
=
getEventChannel
();
}
};
};
function
findExistsPageIndex
(
url
)
{
const
pages
=
getCurrentPages
();
let
len
=
pages
.
length
;
...
...
@@ -521,8 +525,8 @@ function findExistsPageIndex (url) {
}
}
return
-
1
}
}
var
redirectTo
=
{
name
(
fromArgs
)
{
if
(
fromArgs
.
exists
===
'
back
'
&&
fromArgs
.
delta
)
{
...
...
@@ -541,8 +545,8 @@ var redirectTo = {
}
}
}
};
};
var
previewImage
=
{
args
(
fromArgs
)
{
let
currentIndex
=
parseInt
(
fromArgs
.
current
);
...
...
@@ -575,8 +579,8 @@ var previewImage = {
loop
:
false
}
}
};
};
const
UUID_KEY
=
'
__DC_STAT_UUID
'
;
let
deviceId
;
function
addUuid
(
result
)
{
...
...
@@ -608,15 +612,15 @@ var getSystemInfo = {
addUuid
(
result
);
addSafeAreaInsets
(
result
);
}
};
};
const
oName
=
'
getUserInfo
'
;
const
nName
=
'
getUserProfile
'
;
var
getUserProfile
=
{
name
:
tt
.
canIUse
(
nName
)
?
nName
:
oName
};
};
// 不支持的 API 列表
const
todos
=
[
'
preloadPage
'
,
...
...
@@ -788,8 +792,8 @@ const protocols = {
digestAlgorithm
:
false
}
}
};
};
const
CALLBACKS
=
[
'
success
'
,
'
fail
'
,
'
cancel
'
,
'
complete
'
];
function
processCallback
(
methodName
,
method
,
returnValue
)
{
...
...
@@ -874,8 +878,8 @@ function wrapper (methodName, method) {
}
}
return
method
}
}
const
todoApis
=
Object
.
create
(
null
);
const
TODOS
=
[
...
...
@@ -902,15 +906,15 @@ function createTodoApi (name) {
TODOS
.
forEach
(
function
(
name
)
{
todoApis
[
name
]
=
createTodoApi
(
name
);
});
});
var
providers
=
{
oauth
:
[
'
toutiao
'
],
share
:
[
'
toutiao
'
],
payment
:
[
'
toutiao
'
],
push
:
[
'
toutiao
'
]
};
};
function
getProvider
({
service
,
success
,
...
...
@@ -932,18 +936,18 @@ function getProvider ({
isFn
(
fail
)
&&
fail
(
res
);
}
isFn
(
complete
)
&&
complete
(
res
);
}
var
extraApi
=
/*#__PURE__*/
Object
.
freeze
({
__proto__
:
null
,
getProvider
:
getProvider
});
}
var
extraApi
=
/*#__PURE__*/
Object
.
freeze
({
__proto__
:
null
,
getProvider
:
getProvider
});
const
getEmitter
=
(
function
()
{
let
Emitter
;
return
function
getUniEmitter
()
{
if
(
!
Emitter
)
{
Emitter
=
new
Vue
();
return
function
getUniEmitter
()
{
if
(
!
Emitter
)
{
Emitter
=
new
Vue
();
}
return
Emitter
}
...
...
@@ -964,16 +968,16 @@ function $once () {
}
function
$emit
()
{
return
apply
(
getEmitter
(),
'
$emit
'
,
[...
arguments
])
}
var
eventApi
=
/*#__PURE__*/
Object
.
freeze
({
__proto__
:
null
,
$on
:
$on
,
$off
:
$off
,
$once
:
$once
,
$emit
:
$emit
});
}
var
eventApi
=
/*#__PURE__*/
Object
.
freeze
({
__proto__
:
null
,
$on
:
$on
,
$off
:
$off
,
$once
:
$once
,
$emit
:
$emit
});
function
createMediaQueryObserver
()
{
const
mediaQueryObserver
=
{};
const
{
...
...
@@ -1064,13 +1068,13 @@ function createMediaQueryObserver () {
};
return
mediaQueryObserver
}
var
api
=
/*#__PURE__*/
Object
.
freeze
({
__proto__
:
null
,
createMediaQueryObserver
:
createMediaQueryObserver
});
}
var
api
=
/*#__PURE__*/
Object
.
freeze
({
__proto__
:
null
,
createMediaQueryObserver
:
createMediaQueryObserver
});
const
MPPage
=
Page
;
const
MPComponent
=
Component
;
...
...
@@ -1088,8 +1092,10 @@ function initTriggerEvent (mpInstance) {
}
function
initHook
(
name
,
options
,
isComponent
)
{
// fix by Lxh 字节自定义组件Component构造器文档上写有created,但是实测只触发了lifetimes上的created
isComponent
&&
(
options
=
options
.
lifetimes
)
{
// fix by Lxh 字节自定义组件Component构造器文档上写有created,但是实测只触发了lifetimes上的created
isComponent
&&
(
options
=
options
.
lifetimes
);
}
const
oldHook
=
options
[
name
];
if
(
!
oldHook
)
{
options
[
name
]
=
function
()
{
...
...
@@ -1114,8 +1120,8 @@ if (!MPPage.__$wrappered) {
initHook
(
'
created
'
,
options
,
true
);
return
MPComponent
(
options
)
};
}
}
const
PAGE_EVENT_HOOKS
=
[
'
onPullDownRefresh
'
,
'
onReachBottom
'
,
...
...
@@ -1657,8 +1663,8 @@ function handleEvent (event) {
)
{
return
ret
[
0
]
}
}
}
const
hooks
=
[
'
onShow
'
,
'
onHide
'
,
...
...
@@ -1818,8 +1824,8 @@ function parseBaseApp (vm, {
initHooks
(
appOptions
,
hooks
);
return
appOptions
}
}
function
findVmByVueId
(
vm
,
vuePid
)
{
const
$children
=
vm
.
$children
;
// 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200)
...
...
@@ -1860,8 +1866,8 @@ function handleLink (event) {
}
vueOptions
.
parent
=
parentVm
;
}
}
const
mocks
=
[
'
__route__
'
,
'
__webviewId__
'
,
'
__nodeid__
'
,
'
__nodeId__
'
];
function
isPage
()
{
...
...
@@ -1961,8 +1967,8 @@ function handleLink$1 ({
vm
.
_isMounted
=
true
;
vm
.
__call_hook
(
'
mounted
'
);
vm
.
__call_hook
(
'
onReady
'
);
}
}
function
parseApp
(
vm
)
{
Vue
.
prototype
.
_$fallback
=
true
;
// 降级(调整原 vue 的部分生命周期,如 created,beforeMount,inject,provide)
...
...
@@ -1989,13 +1995,13 @@ function parseApp (vm) {
mocks
,
initRefs
:
function
()
{}
// attached 时,可能查询不到
})
}
}
function
createApp
(
vm
)
{
App
(
parseApp
(
vm
));
return
vm
}
}
const
encodeReserveRE
=
/
[
!'()*
]
/g
;
const
encodeReserveReplacer
=
c
=>
'
%
'
+
c
.
charCodeAt
(
0
).
toString
(
16
);
const
commaRE
=
/%2C/g
;
...
...
@@ -2037,8 +2043,8 @@ function stringifyQuery (obj, encodeStr = encode) {
return
encodeStr
(
key
)
+
'
=
'
+
encodeStr
(
val
)
}).
filter
(
x
=>
x
.
length
>
0
).
join
(
'
&
'
)
:
null
;
return
res
?
`?
${
res
}
`
:
''
}
}
function
parseBaseComponent
(
vueComponentOptions
,
{
isPage
,
initRelation
...
...
@@ -2129,8 +2135,8 @@ function parseBaseComponent (vueComponentOptions, {
return
componentOptions
}
return
[
componentOptions
,
VueComponent
]
}
}
const
components
=
[];
function
parseComponent
(
vueOptions
)
{
...
...
@@ -2183,8 +2189,8 @@ function parseComponent (vueOptions) {
componentOptions
.
methods
.
__l
=
handleLink$1
;
return
componentOptions
}
}
const
hooks$1
=
[
'
onShow
'
,
'
onHide
'
,
...
...
@@ -2213,8 +2219,8 @@ function parseBasePage (vuePageOptions, {
};
return
pageOptions
}
}
function
parsePage
(
vuePageOptions
)
{
const
pageOptions
=
parseBasePage
(
vuePageOptions
,
{
isPage
,
...
...
@@ -2231,34 +2237,34 @@ function parsePage (vuePageOptions) {
}
else
{
this
.
is
&&
console
.
warn
(
this
.
is
+
'
is not ready
'
);
}
};
pageOptions
.
lifetimes
.
detached
=
function
detached
()
{
this
.
$vm
&&
this
.
$vm
.
$destroy
();
// 清理
const
webviewId
=
this
.
__webviewId__
;
webviewId
&&
Object
.
keys
(
instances
).
forEach
(
key
=>
{
if
(
key
.
indexOf
(
webviewId
+
'
_
'
)
===
0
)
{
delete
instances
[
key
];
}
});
};
pageOptions
.
lifetimes
.
detached
=
function
detached
()
{
this
.
$vm
&&
this
.
$vm
.
$destroy
();
// 清理
const
webviewId
=
this
.
__webviewId__
;
webviewId
&&
Object
.
keys
(
instances
).
forEach
(
key
=>
{
if
(
key
.
indexOf
(
webviewId
+
'
_
'
)
===
0
)
{
delete
instances
[
key
];
}
});
};
return
pageOptions
}
}
function
createPage
(
vuePageOptions
)
{
{
return
Component
(
parsePage
(
vuePageOptions
))
}
}
}
function
createComponent
(
vueOptions
)
{
{
return
Component
(
parseComponent
(
vueOptions
))
}
}
}
function
createSubpackageApp
(
vm
)
{
const
appOptions
=
parseApp
(
vm
);
const
app
=
getApp
({
...
...
@@ -2293,8 +2299,8 @@ function createSubpackageApp (vm) {
vm
.
__call_hook
(
'
onLaunch
'
,
args
);
}
return
vm
}
}
function
createPlugin
(
vm
)
{
const
appOptions
=
parseApp
(
vm
);
if
(
isFn
(
appOptions
.
onShow
)
&&
tt
.
onAppShow
)
{
...
...
@@ -2312,8 +2318,8 @@ function createPlugin (vm) {
appOptions
.
onLaunch
.
call
(
vm
,
args
);
}
return
vm
}
}
todos
.
forEach
(
todoApi
=>
{
protocols
[
todoApi
]
=
false
;
});
...
...
@@ -2396,7 +2402,7 @@ tt.createComponent = createComponent;
tt
.
createSubpackageApp
=
createSubpackageApp
;
tt
.
createPlugin
=
createPlugin
;
var
uni$1
=
uni
;
export
default
uni$1
;
export
{
createApp
,
createComponent
,
createPage
,
createPlugin
,
createSubpackageApp
};
var
uni$1
=
uni
;
export
default
uni$1
;
export
{
createApp
,
createComponent
,
createPage
,
createPlugin
,
createSubpackageApp
};
src/platforms/mp-weixin/runtime/index.js
浏览文件 @
8cb77614
...
...
@@ -24,7 +24,11 @@ function initTriggerEvent (mpInstance) {
}
}
function
initHook
(
name
,
options
)
{
function
initHook
(
name
,
options
,
isComponent
)
{
if
(
__PLATFORM__
===
'
mp-toutiao
'
)
{
// fix by Lxh 字节自定义组件Component构造器文档上写有created,但是实测只触发了lifetimes上的created
isComponent
&&
(
options
=
options
.
lifetimes
)
}
const
oldHook
=
options
[
name
]
if
(
!
oldHook
)
{
options
[
name
]
=
function
()
{
...
...
@@ -46,7 +50,7 @@ if (!MPPage.__$wrappered) {
Page
.
after
=
MPPage
.
after
Component
=
function
(
options
=
{})
{
initHook
(
'
created
'
,
options
)
initHook
(
'
created
'
,
options
,
true
)
return
MPComponent
(
options
)
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录