VUE项目打包web5+APP第三方链接跳转

项目场景:

VUE项目打包web5+APP第三方链接跳转


问题描述:

VUE项目打包为web5+APP,跳转第三方链接,使用手机返回键返回时,直接退出APP

原因分析:

当前项目中的返回作用的范围为route中的数据,第三方链接实则为第三方项目,所以作用不到。(自己的粗略分析!)


解决方案:

  1. 在VUE项目中引入mui
    1)在mui官网 下载dist文件夹,将文件夹名字改为mui
    2)放入VUE项目的src/assets中
    在这里插入图片描述

    3)在main.js中添加以内mui

    import mui from './assets/mui/js/mui.js'
    import './assets/mui/css/mui.css'
    
    Vue.prototype.$mui = mui
    

    在这里插入图片描述

    4)在 babel.config.js 文件中添加
    ignore: [“./src/assets/mui/js/mui.js”]

      ignore: ["./src/assets/mui/js/mui.js"]
    

    在这里插入图片描述

    注意!
    如果出现了报错“Uncaught ReferenceError: mui is not defined”
    解决方法!
    在mui.js的源文件后最后加上 window.mui = mui;

    window.mui = mui;
    

在这里插入图片描述

  1. 在需要进行第三方跳转的页面使用openWindow进行操作

    <template>
      	<div>
    		<div style="text-decoration:none" @click="toLink(link)">这是一个串文字</div>
    	</div>
    </template>
    
    js
    <script>
    	export default {
    		data() {
    			return {
    				openWebView: false
    			};
    		},
    		mounted() {
    			let _this = this
    			mui.init({
    				beforeback: function() {
    					if (_this.openWebView) {
    						//获得列表界面的webview jmyc
    						var viewObj = plus.webview.getWebviewById('jmyc')
    						//canBack查询窗口是否可退
    						viewObj.canBack((event) => {
    							var canBack = event.canBack
    							if (canBack) {//如可退,则返回上一页面
    								viewObj.back()
    							} else {//如不可退,则退出窗口
    								plus.webview.close('jmyc')
    								_this.openWebView = false
    							}
    						})
    						return false
    	          		}
    	          		return true
        			}
    			})
    		},
    		methods: {
    			toLink(url) {
    				this.openWebView = true
    				mui.openWindow({
    					url: url,
    					id: 'jmyc',
    					styles: {                             // 窗口参数 参考5+规范中的WebviewStyle,也就是说WebviewStyle下的参数都可以在此设置
    						titleNView: {                       // 窗口的标题栏控件
    						autoBackButton: true,             //新打开的窗口是否有返回键
    						// titleText:"标题栏",                // 标题栏文字,当不设置此属性时,默认加载当前页面的标题,并自动更新页面的标题
    						titleColor: '#000000',             // 字体颜色,颜色值格式为"#RRGGBB",默认值为"#000000"
    						titleSize: '17px',                 // 字体大小,默认17px
    						backgroundColor: '#F7F7F7',        // 控件背景颜色,颜色值格式为"#RRGGBB",默认值为"#F7F7F7"
    						progress: {                        // 标题栏控件的进度条样式
    							color: '#00FF00',                // 进度条颜色,默认值为"#00FF00"
    							height: '2px'                    // 进度条高度,默认值为"2px"
    						},
    						splitLine: {                       // 标题栏控件的底部分割线,类似borderBottom
    							color: '#CCCCCC',                // 分割线颜色,默认值为"#CCCCCC"
    							height: '1px'                    // 分割线高度,默认值为"2px"
    						}
    					}
    				}
    			})
    		}
    	},
    }
    
    </script>
    

参考资料:

vue-打包为webapp,如何解决应用内跳转外部链接返回导致退出应用

在vuecli3中使用mui超详细教程(亲测有效)

vue项目中引入mui.poppicker.js文件时报错“Uncaught ReferenceError: mui is not defined”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值