1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
| import {
| callAppHook
| } from '../util'
|
| import createApp from './create-app'
|
| export {
| getApp,
| getCurrentPages
| }
| from './create-app'
|
| const extend = Object.assign
|
| function createLaunchOptions () {
| return {
| path: '',
| query: {},
| scene: 1001,
| referrerInfo: {
| appId: '',
| extraData: {}
| }
| }
| }
|
| const enterOptions = createLaunchOptions()
| const launchOptions = createLaunchOptions()
|
| export function getLaunchOptions () {
| return launchOptions
| }
|
| export function getEnterOptions () {
| return enterOptions
| }
|
| export function initLaunchOptions ({
| path,
| query,
| referrerInfo
| }) {
| extend(launchOptions, {
| path,
| query: query || {},
| referrerInfo: referrerInfo || {}
| })
| extend(enterOptions, launchOptions)
| return launchOptions
| }
|
| export function createAppMixin (Vue, routes, entryRoute) {
| return {
| created: function AppCreated () {
| createApp(Vue, this, routes)
| // TODO
| if (!entryRoute.meta.name) { // PageNotFound
| UniServiceJSBridge.emit('onPageNotFound', {
| path: entryRoute.path,
| query: entryRoute.query,
| isEntryPage: true
| })
| // TODO 跳转至缺省404页面
| }
| },
|
| beforeMount: function appBeforeMount () {
| // TODO 平台代码
| this.$el = document.getElementById('app')
| },
| mounted: function appMounted () {
| // 稍微靠后点,让 App 有机会在 mounted 事件前注册一些全局事件监听,如 UI 显示(showModal)
| initLaunchOptions({
| path: this.$route.meta && this.$route.meta.pagePath,
| query: this.$route.query
| })
| callAppHook(this, 'onLaunch', launchOptions)
| callAppHook(this, 'onShow', enterOptions)
| }
| }
| }
|
|