開始時我在真機上測試使用html
<web-view :src="'/hybrid/html/pages/index/index.html?userInfo='+JSON.stringify(userInfo)+'&type='+webViewType" @message="getMessage"></web-view>
這種形式傳參時沒有問題會走UniAppJSBridgeReady 回調可是,離線打包生成app資源在xcode上運行到手機出現不回調vue
由於官方的demo實例中沒有出現問題,由於裏面沒有向webview傳參web
後來發現是傳參問題,不能用下面形式vuex
<web-view :src="'/hybrid/html/pages/index/index.html?userInfo='+JSON.stringify(userInfo)+'&type='+webViewType" @message="getMessage"></web-view>
我改後的
<template> <view> <!-- <web-view :src="'/hybrid/html/pages/index/index.html?userInfo='+JSON.stringify(userInfo)+'&type='+webViewType" @message="getMessage"></web-view> --> <web-view :src="url" @message="getMessage"></web-view> </view> </template> <script> //非父子組件傳值 import bus from '../../static/js/bus.js'; import { mapState, mapMutations } from 'vuex'; export default { computed: mapState(['userInfo', 'api','webViewType']), data() { return { url:'', fileList:[] } }, onLoad(option) { console.log(this.webViewType) this.url=`/hybrid/html/pages/index/index.html?type=${this.webViewType}&token=${this.userInfo.token}` }, methods: { getMessage(event) { this.fileList=event.detail.data[0].fileList bus.$emit('fileList',this.fileList) } } } </script> <style> </style>
就能夠觸發了api