From 89b832598976fea23c7275421eb5330ff663b8d6 Mon Sep 17 00:00:00 2001 From: fxy060608 Date: Tue, 28 May 2019 21:30:43 +0800 Subject: [PATCH] fix(mp): mp-baidu ios onLoad args --- packages/uni-mp-baidu/dist/index.js | 19 ++++++++++++++----- packages/uni-mp-baidu/package.json | 2 +- .../runtime/wrapper/component-parser.js | 11 +++++++---- .../mp-baidu/runtime/wrapper/page-parser.js | 10 ++++++++-- .../mp-baidu/runtime/wrapper/util.js | 4 +++- 5 files changed, 33 insertions(+), 13 deletions(-) diff --git a/packages/uni-mp-baidu/dist/index.js b/packages/uni-mp-baidu/dist/index.js index 62fdcdf56..14f68f83f 100644 --- a/packages/uni-mp-baidu/dist/index.js +++ b/packages/uni-mp-baidu/dist/index.js @@ -1105,7 +1105,9 @@ function isPage$1 () { function initRelation$1 (detail) { this.dispatch('__l', detail); -} +} + +const isIOS$1 = swan.getSystemInfoSync().platform === 'ios'; function parseApp (vm) { return parseBaseApp(vm, { @@ -1210,9 +1212,11 @@ function parseComponent (vueOptions) { // 百度 当组件作为页面时 pageinstancce 不是原来组件的 instance this.pageinstance.$vm = this.$vm; - this.$vm.$mp.query = this.pageinstance._$args; // 兼容 mpvue - this.$vm.__call_hook('onLoad', this.pageinstance._$args); - // TODO 目前版本 百度 Component 作为页面时,methods 中的 onShow 不触发 + if (!isIOS$1) { + this.$vm.$mp.query = this.pageinstance._$args; // 兼容 mpvue + this.$vm.__call_hook('onLoad', this.pageinstance._$args); + } + // TODO 目前版本 百度 Component 作为页面时,methods 中的 onShow 不触发 this.$vm.__call_hook('onShow'); } }; @@ -1274,7 +1278,12 @@ function parsePage (vuePageOptions) { pageOptions.methods.onLoad = function onLoad (args) { // 百度 onLoad 在 attached 之前触发,先存储 args, 在 attached 里边触发 onLoad - this.pageinstance._$args = args; + this.pageinstance._$args = args; + + if (isIOS$1) { + this.$vm.$mp.query = this.pageinstance._$args; // 兼容 mpvue + this.$vm.__call_hook('onLoad', this.pageinstance._$args); + } }; // TODO 目前版本 百度 Component 作为页面时,methods 中的 onShow 不触发 delete pageOptions.methods.onShow; diff --git a/packages/uni-mp-baidu/package.json b/packages/uni-mp-baidu/package.json index 907a65acb..ff9671eed 100644 --- a/packages/uni-mp-baidu/package.json +++ b/packages/uni-mp-baidu/package.json @@ -1,6 +1,6 @@ { "name": "@dcloudio/uni-mp-baidu", - "version": "0.0.839", + "version": "0.0.840", "description": "uni-app mp-baidu", "main": "dist/index.js", "scripts": { diff --git a/src/platforms/mp-baidu/runtime/wrapper/component-parser.js b/src/platforms/mp-baidu/runtime/wrapper/component-parser.js index 7c375f29e..3b7e01ce7 100644 --- a/src/platforms/mp-baidu/runtime/wrapper/component-parser.js +++ b/src/platforms/mp-baidu/runtime/wrapper/component-parser.js @@ -1,5 +1,6 @@ import { - isPage, + isPage, + isIOS, initRelation } from './util' @@ -19,9 +20,11 @@ export default function parseComponent (vueOptions) { // 百度 当组件作为页面时 pageinstancce 不是原来组件的 instance this.pageinstance.$vm = this.$vm - this.$vm.$mp.query = this.pageinstance._$args // 兼容 mpvue - this.$vm.__call_hook('onLoad', this.pageinstance._$args) - // TODO 目前版本 百度 Component 作为页面时,methods 中的 onShow 不触发 + if (!isIOS) { + this.$vm.$mp.query = this.pageinstance._$args // 兼容 mpvue + this.$vm.__call_hook('onLoad', this.pageinstance._$args) + } + // TODO 目前版本 百度 Component 作为页面时,methods 中的 onShow 不触发 this.$vm.__call_hook('onShow') } } diff --git a/src/platforms/mp-baidu/runtime/wrapper/page-parser.js b/src/platforms/mp-baidu/runtime/wrapper/page-parser.js index 43ec8dfd9..b7da34530 100644 --- a/src/platforms/mp-baidu/runtime/wrapper/page-parser.js +++ b/src/platforms/mp-baidu/runtime/wrapper/page-parser.js @@ -1,5 +1,6 @@ import { - isPage, + isPage, + isIOS, initRelation } from './util' @@ -27,7 +28,12 @@ export default function parsePage (vuePageOptions) { pageOptions.methods.onLoad = function onLoad (args) { // 百度 onLoad 在 attached 之前触发,先存储 args, 在 attached 里边触发 onLoad - this.pageinstance._$args = args + this.pageinstance._$args = args + + if (isIOS) { + this.$vm.$mp.query = this.pageinstance._$args // 兼容 mpvue + this.$vm.__call_hook('onLoad', this.pageinstance._$args) + } } // TODO 目前版本 百度 Component 作为页面时,methods 中的 onShow 不触发 delete pageOptions.methods.onShow diff --git a/src/platforms/mp-baidu/runtime/wrapper/util.js b/src/platforms/mp-baidu/runtime/wrapper/util.js index 6e7217e32..0b0b1d4f3 100644 --- a/src/platforms/mp-baidu/runtime/wrapper/util.js +++ b/src/platforms/mp-baidu/runtime/wrapper/util.js @@ -6,4 +6,6 @@ export function isPage () { export function initRelation (detail) { this.dispatch('__l', detail) -} +} + +export const isIOS = swan.getSystemInfoSync().platform === 'ios' -- GitLab