#Uniapp 套壳h5打包app
#1. 简介
httpUrl 是你要套壳的的h5网址。onReady中需要修改一下你首页的标题,目的是去除打包后APP首页导航栏的返回按钮。
#2. 实现代码
#2.1 pages/index/index.vue
<template>
<view class="content">
<web-view v-if="httpUrl" :src='httpUrl'></web-view>
<view v-else>
系统异常,请联系管理员处理
</view>
</view>
</template>
<script>
var wv;
export default {
data() {
return {
httpUrl: null,
canBack: false,
}
},
onNavigationBarButtonTap(e) {
if (wv) {
wv.back();
}
},
onLoad() {
this.httpUrl = `http://xxxxxxxxxxxxxx/`;
},
methods: {
},
onBackPress(from) {
if (wv && this.canBack) {
wv.back();
return true;
}
return false;
},
onReady() {
// #ifdef APP-PLUS
var self = this;
var currentWebview = this.$scope.$getAppWebview();
setTimeout(function() {
wv = currentWebview.children()[0];
wv.addEventListener(
"progressChanged",
function(e) {
wv.canBack(function(e) {
self.canBack = e.canBack;
});
},
false
);
wv.addEventListener(
"titleUpdate",
function(e) {
if (e.title?.includes('首页标题')) {
let pages = getCurrentPages();
let page = pages[pages.length - 1];
let currentWebview = page.$getAppWebview();
currentWebview.setTitleNViewButtonStyle(0, {
text: "",
width: 0
});
} else {
let pages = getCurrentPages();
let page = pages[pages.length - 1];
let currentWebview = page.$getAppWebview();
currentWebview.setTitleNViewButtonStyle(0, {
type: "back",
width: "auto"
});
}
},
false
);
}, 500); //如果是页面初始化调用时,需要延时一下
// #endif
}
}
</script>
<style>
.content {}
</style>

