diff --git a/packages/uni-app-plus/dist/index.v3.js b/packages/uni-app-plus/dist/index.v3.js index 3a1c2c56297632f4f386433b70619001ba73e5c4..54355c8320895e96f56a267f95fa55c85246e75a 100644 --- a/packages/uni-app-plus/dist/index.v3.js +++ b/packages/uni-app-plus/dist/index.v3.js @@ -9451,10 +9451,12 @@ var serviceContext = (function () { ]; var tempCanvas; - function getTempCanvas () { + function getTempCanvas (width = 0, height = 0) { if (!tempCanvas) { tempCanvas = document.createElement('canvas'); } + tempCanvas.width = width; + tempCanvas.height = height; return tempCanvas } @@ -11771,7 +11773,7 @@ var serviceContext = (function () { const navigateType = routeOptions.meta.isTabBar ? 'switchTab' : 'navigateTo'; process.env.NODE_ENV !== 'production' && perf(`${entryPagePath} navigateTo`); return uni[navigateType]({ - url: entryPagePath, + url: entryPagePath + (__uniConfig.entryPageQuery || ''), openType: 'appLaunch' }) } @@ -12003,28 +12005,39 @@ var serviceContext = (function () { }); } - function initHotReload () { - const reloadUrl = weex.config.reloadUrl; - if (!reloadUrl) { + function initEntryPage () { + const argsJsonStr = plus.runtime.arguments; + if (!argsJsonStr) { return } - if (reloadUrl === __uniConfig.entryPagePath) { + + let entryPagePath; + let entryPageQuery; + + try { + const args = JSON.parse(argsJsonStr); + entryPagePath = args.path || args.pathName; + entryPageQuery = (args.query ? ('?' + args.query) : ''); + } catch (e) {} + if (!entryPagePath || entryPagePath === __uniConfig.entryPagePath) { return } - const reloadPath = '/' + reloadUrl; - const routeOptions = __uniRoutes.find(route => route.path === reloadPath); + + const entryRoute = '/' + entryPagePath; + const routeOptions = __uniRoutes.find(route => route.path === entryRoute); if (!routeOptions) { return } - if (routeOptions.meta.isNVue) { // 暂不处理 nvue - return - } + if (!routeOptions.meta.isTabBar) { __uniConfig.realEntryPagePath = __uniConfig.realEntryPagePath || __uniConfig.entryPagePath; } - __uniConfig.entryPagePath = reloadUrl; + + __uniConfig.entryPagePath = entryPagePath; + __uniConfig.entryPageQuery = entryPageQuery; + if (process.env.NODE_ENV !== 'production') { - console.log(`[uni-app] reloadUrl(${reloadUrl})`); + console.log(`[uni-app] entryPagePath(${entryPagePath + entryPageQuery})`); } } @@ -12046,7 +12059,7 @@ var serviceContext = (function () { getCurrentPages: getCurrentPages$1 }); - initHotReload(); + initEntryPage(); initTabBar(); diff --git a/packages/webpack-uni-pages-loader/lib/platforms/app-plus/index.v3.js b/packages/webpack-uni-pages-loader/lib/platforms/app-plus/index.v3.js index 7565028e1eb84e4ae78a91880a0f564010248ca3..a01b967d78cdbdf1029e3892d692ca07d256a3f8 100644 --- a/packages/webpack-uni-pages-loader/lib/platforms/app-plus/index.v3.js +++ b/packages/webpack-uni-pages-loader/lib/platforms/app-plus/index.v3.js @@ -33,8 +33,10 @@ function parseEntryPagePath (appJson, manifestJson) { try { const args = JSON.parse(argsJsonStr) const pathName = args.path || args.pathName + const entryPageQuery = (args.query ? ('?' + args.query) : '') if (pathName && appJson.pages[0] !== pathName) { appJson.entryPagePath = pathName + appJson.entryPageQuery = entryPageQuery if (!isTabBarPage(pathName, getTabBarPages(appJson))) { appJson.realEntryPagePath = appJson.pages[0] } @@ -83,7 +85,7 @@ module.exports = function (appJson, manifestJson, { if (appJson.page[appJson.entryPagePath].nvue) { // 首页是 nvue manifestJson.launch_path = '' // 首页地址为空 manifestJson.plus.launchwebview.uniNView = { - path: appJson.entryPagePath + path: appJson.entryPagePath + '.js' + (appJson.entryPageQuery || '') } if (manifestJson.plus.tabBar) { manifestJson.plus.tabBar.child = ['lauchwebview'] @@ -100,4 +102,4 @@ module.exports = function (appJson, manifestJson, { manifest.content = JSON.stringify(manifest.content) delete appJson.nvue return [manifest, definePages(appJson), appConfigService(appJson)] -} +} diff --git a/src/platforms/app-plus/service/framework/app.js b/src/platforms/app-plus/service/framework/app.js index bc960e1aa77d205990e2af6cde8c5d802387b713..85eed95b2abc54f5889c0f3cf27ef2cd5e949e75 100644 --- a/src/platforms/app-plus/service/framework/app.js +++ b/src/platforms/app-plus/service/framework/app.js @@ -140,28 +140,39 @@ function initTabBar () { }) } -function initHotReload () { - const reloadUrl = weex.config.reloadUrl - if (!reloadUrl) { +function initEntryPage () { + const argsJsonStr = plus.runtime.arguments + if (!argsJsonStr) { return } - if (reloadUrl === __uniConfig.entryPagePath) { + + let entryPagePath + let entryPageQuery + + try { + const args = JSON.parse(argsJsonStr) + entryPagePath = args.path || args.pathName + entryPageQuery = (args.query ? ('?' + args.query) : '') + } catch (e) {} + if (!entryPagePath || entryPagePath === __uniConfig.entryPagePath) { return } - const reloadPath = '/' + reloadUrl - const routeOptions = __uniRoutes.find(route => route.path === reloadPath) + + const entryRoute = '/' + entryPagePath + const routeOptions = __uniRoutes.find(route => route.path === entryRoute) if (!routeOptions) { return } - if (routeOptions.meta.isNVue) { // 暂不处理 nvue - return - } + if (!routeOptions.meta.isTabBar) { __uniConfig.realEntryPagePath = __uniConfig.realEntryPagePath || __uniConfig.entryPagePath } - __uniConfig.entryPagePath = reloadUrl + + __uniConfig.entryPagePath = entryPagePath + __uniConfig.entryPageQuery = entryPageQuery + if (process.env.NODE_ENV !== 'production') { - console.log(`[uni-app] reloadUrl(${reloadUrl})`) + console.log(`[uni-app] entryPagePath(${entryPagePath + entryPageQuery})`) } } @@ -183,7 +194,7 @@ export function registerApp (appVm) { getCurrentPages }) - initHotReload() + initEntryPage() initTabBar() diff --git a/src/platforms/app-plus/service/framework/subscribe-handlers/on-webview-ready.js b/src/platforms/app-plus/service/framework/subscribe-handlers/on-webview-ready.js index abe1f468cc55c97c01c27fc638be6917fb1b24d3..9a53a495ed2ea559c31bb32f995b11dc0df9bd05 100644 --- a/src/platforms/app-plus/service/framework/subscribe-handlers/on-webview-ready.js +++ b/src/platforms/app-plus/service/framework/subscribe-handlers/on-webview-ready.js @@ -38,7 +38,7 @@ export default function onWebviewReady (data, pageId) { const navigateType = routeOptions.meta.isTabBar ? 'switchTab' : 'navigateTo' process.env.NODE_ENV !== 'production' && perf(`${entryPagePath} navigateTo`) return uni[navigateType]({ - url: entryPagePath, + url: entryPagePath + (__uniConfig.entryPageQuery || ''), openType: 'appLaunch' }) }