diff --git a/packages/uni-h5/dist/uni-h5.cjs.js b/packages/uni-h5/dist/uni-h5.cjs.js index 86f2c17e2e6bf4eb0cbe713143e662b29e81ea98..d5b072c92bfd88058d6121386eba473246ab160b 100644 --- a/packages/uni-h5/dist/uni-h5.cjs.js +++ b/packages/uni-h5/dist/uni-h5.cjs.js @@ -6589,10 +6589,12 @@ function usePageRoute() { query = uniShared.parseQuery(url.slice(searchPos + 1, hashPos > -1 ? hashPos : url.length)); } const { meta } = __uniRoutes[0]; + const path = "/" + meta.route; return { meta, query, - path: "/" + meta.route + path, + matched: [{ path }] }; } function initPageMeta(id) { diff --git a/packages/uni-h5/dist/uni-h5.es.js b/packages/uni-h5/dist/uni-h5.es.js index 776341d19df7e12037047933c9f1eb80adedccbc..8dfc3dd2a8e383d965d581eeedf4f633090f3fb0 100644 --- a/packages/uni-h5/dist/uni-h5.es.js +++ b/packages/uni-h5/dist/uni-h5.es.js @@ -13288,10 +13288,12 @@ function usePageRoute() { query = parseQuery(url.slice(searchPos + 1, hashPos > -1 ? hashPos : url.length)); } const { meta } = __uniRoutes[0]; + const path = "/" + meta.route; return { meta, query, - path: "/" + meta.route + path, + matched: [{ path }] }; } function initPageMeta(id2) { @@ -13732,7 +13734,7 @@ function setupApp(comp) { setup(instance2) { const route = usePageRoute(); const onLaunch = () => { - const { onLaunch: onLaunch2, onShow } = instance2; + const { onLaunch: onLaunch2, onShow, onPageNotFound } = instance2; const path = route.path.substr(1); const launchOptions = { path: path || __uniRoutes[0].meta.route, @@ -13742,6 +13744,18 @@ function setupApp(comp) { }; onLaunch2 && invokeArrayFns$1(onLaunch2, launchOptions); onShow && invokeArrayFns$1(onShow, launchOptions); + if (__UNI_FEATURE_PAGES__) { + if (!route.matched.length) { + const pageNotFoundOptions = { + notFound: true, + openType: "appLaunch", + path: route.path, + query: {}, + scene: 1001 + }; + onPageNotFound && invokeArrayFns$1(onPageNotFound, pageNotFoundOptions); + } + } }; injectAppLaunchHooks(instance2); if (__UNI_FEATURE_PAGES__) { diff --git a/packages/uni-h5/src/framework/setup/index.ts b/packages/uni-h5/src/framework/setup/index.ts index 03476148bd991a7c863eea4a2b60fa1b2e496ca9..e4b779aed67860c1c4a351ae3ad72f9a950d8a8f 100644 --- a/packages/uni-h5/src/framework/setup/index.ts +++ b/packages/uni-h5/src/framework/setup/index.ts @@ -134,7 +134,7 @@ export function setupApp(comp: any) { return route.query } const onLaunch = () => { - const { onLaunch, onShow } = instance + const { onLaunch, onShow, onPageNotFound } = instance const path = route.path.substr(1) const launchOptions = { path: path || __uniRoutes[0].meta.route, @@ -144,6 +144,19 @@ export function setupApp(comp: any) { } onLaunch && invokeArrayFns(onLaunch, launchOptions) onShow && invokeArrayFns(onShow, launchOptions) + if (__UNI_FEATURE_PAGES__) { + if (!route.matched.length) { + const pageNotFoundOptions = { + notFound: true, + openType: 'appLaunch', + path: route.path, + query: {}, + scene: 1001, + } + onPageNotFound && + invokeArrayFns(onPageNotFound, pageNotFoundOptions) + } + } } injectAppLaunchHooks(instance) if (__UNI_FEATURE_PAGES__) { diff --git a/packages/uni-h5/src/framework/setup/provide/page.ts b/packages/uni-h5/src/framework/setup/provide/page.ts index 00a847e81068eac0457ccaf1e95a251fed7a74ca..87aecad3726945c9dfdf7bae64d6a4b8152d7b2f 100644 --- a/packages/uni-h5/src/framework/setup/provide/page.ts +++ b/packages/uni-h5/src/framework/setup/provide/page.ts @@ -37,10 +37,12 @@ export function usePageRoute() { ) } const { meta } = __uniRoutes[0] + const path = '/' + meta.route return { meta, query: query, - path: '/' + meta.route, + path, + matched: [{ path }], } } function initPageMeta(id: number) {