首页/知天下事/正文
HBuildder X 项目搭建:从新建到配置及webview相关操作指南

 2025年08月29日  阅读 7

摘要:【下载与安装】首先下载并安装HBuilderX开发工具,这是uni-app官方推荐的IDE。安装完成后,打开软件,点击“文件”-˃“新建”-˃“项目”,选择uni-app模板。由于我们仅需一个基础壳子套H5页面,直接使用默认模板即可,无需复杂配置。【基础代...

【下载与安装】

首先下载并安装HBuilderX开发工具,这是uni-app官方推荐的IDE。安装完成后,打开软件,点击“文件”->“新建”->“项目”,选择uni-app模板。由于我们仅需一个基础壳子套H5页面,直接使用默认模板即可,无需复杂配置。

【基础代码编写】

在项目中新建页面,编写简单的逻辑代码。重点是通过@监听H5回传的消息,实现原生功能调用。例如,将需要打开的链接部署在固定服务器上,便于后续更新配置。通过SDK可调用摄像头、蓝牙等原生功能,代码示例如下:


uni.onMessage(res => {
  if (res.action === 'openCamera') {
    uni.openCamera();
  }
});



app如何开发小程序_uniapp开发webview_配置manifest.json

【manifest.json配置】

1. 基础配置:填写AppID和包名(需唯一且不可随意更改)。

2. 图标设置:准备一张1024x1024的PNG图标,工具会自动生成多分辨率适配的图标。

3. 模块配置:按需添加推送、定位等模块。注意阅读官方文档,避免踩坑(部分高级功能需付费技术支持)。

4. 权限声明:在配置文件中明确权限,如相机(camera)、麦克风(audioCapture)。命名与官方文档一致,建议搜索确认避免错误。

【云打包流程】

1. 打包方式:优先选择“传统打包”,“快速安心打包”可能因缓存导致问题。

2. 证书管理:备份证书和密码,建议上传至私有Git仓库。iOS需额外申请开发者账号(99美元/年)。

3. 包名规范:打包面板提供“生成证书”教程链接,包名一旦确定不可更改,需提前规划。

【Vue集成与路由控制】

1. 引入SDK:通过CDN或本地引入uni-webview-js SDK,解决H5页面在App壳内无法原生后退的问题。

2. 自定义路由:在main.js中注入路由逻辑,示例:


Vue.prototype.$router = {
  back() {
    uni.navigateBack();
  }
};

页面中调用this.$router.back()即可触发原生后退。

【上架注意事项】

此类套壳App通常仅适合企业内部或私有客户使用。若需上架应用市场,需完成以下步骤:

企业资质:提交营业执照、法人身份证(部分平台如vivo需手持身份证照片)。

const control = {
    // 在这些页面上后退按钮点两次会退出app
    homePaths: ['/index','/login'],
    state: [],
    vueObj: null,
    init(vueObj){
        this.vueObj = vueObj;
        this.addListener();
        return this;
    },
    // 判断是否首页(需要后退能退出app的页面)
    isHome(path) {
        return this.homePaths.includes(path);
    },
    // 在beforeEnter里面加上它,把路由状态保存起来
    pushState(path) {
        if(path!==this.state[this.state.length-1]){
            this.state.push(path);
        }
    },
    // 页面在后退的地方调用它
    back() {
        // 在首页等需要退出app的地方直接后退
        if(this.isHome(this.vueObj.$route.path)){
            window.uni.navigateBack();
            return
        }
        // 如果在非app环境刷新了页面
        if(this.state.length){
            // 自己的路由状态保存
            this.state.pop();
            // 这里这么写是因为有些手机后退,页面状态会很奇怪,所有即使直接push上一个页面进来
            this.vueObj.$router.push({ path: this.state[this.state.length-1] });
        } else {
            history.go(-1);
        }
    },
    // 监听后退按钮
    addListener(){
        // 本地开发的时候不用监听后退
         if(typeof window.plus === 'undefined'){
             console.log("当前不是app环境");
             return;
        }
        const _this = this;
        document.addEventListener('UniAppJSBridgeReady', function() {
            var webview = window.plus.webview.currentWebview();
            window.plus.key.addEventListener('backbutton', function() {
                webview.canBack(function(e) {
                    if (e.canBack) {
                        _this.back();
                    } else {
                        window.uni.navigateBack();
                    }
                })
            });
        })
    }
};
export default control;

多平台适配:各厂商(华为、小米等)需单独注册开发者账号,流程繁琐。小公司可通过第三方资质解决,但存在合规风险。

【总结与资源推荐】

本文介绍了uni-app开发套壳App的核心步骤,涵盖配置、打包及上架要点。如需进一步优化UI,可参考uni-app官方开源组件库(如uView),支持多端演示(扫码或点击链接查看)。实际开发中,建议结合业务需求权衡原生功能与H5的混合方案。

import Vue from 'vue';
import VueRouter from 'vue-router';
import HistoryCtrl from "static/js/history-ctrl";
const router = new VueRouter({
    routes: routerConfig
});
router.beforeEach(async (to, from, next) => {
    // 自己的路由
    HistoryCtrl.pushState(to.path);
    next();
});
const vueObj = new Vue({
    el: "#app",
    router,
    store
});
// 把自己做的前进后退挂载到vue里面方便调用
Vue.prototype.$historyctrl = HistoryCtrl.init(vueObj);
// 解决弹窗遮罩滑动穿透的问题
document.querySelector('body').addEventListener('touchmove', function(e) {
    e.preventDefault();
})

版权声明:本文为 “博览广文网” 原创文章,转载请附上原文出处链接及本声明;

原文链接:http://wen.bjhwtx.com/post/36482.html

标签:

博览广文网

博览广文网为所有文学爱好者、新闻爱好者、关注生活多方面内容的观众朋友提供多方位的内容呈现、提升阅读空间、填充碎片时间,开阔读者的视野、增长见识、了解民生、一个让您不出户尽知天下事的网站平台!
热门标签
关于我们
广文舒阅网—让天下读者有家可归!这里汇聚了各类优质文化信息,无论是全球热点、历史故事,还是实用百科、趣味探索,您都能轻松获取。我们希望用阅读点亮您的世界,让每一次浏览都充满收获和乐趣。
导航栏A标题
广文舒阅网
扫码关注
联系方式
全国服务热线:0755-88186625
Q Q:8705332
Email:admin@lanyu.com
地址:深圳市福田区海雅缤纷国际大厦5层501
Copyright 深圳市蓝宇科技有限公司 版权所有 备案号:京ICP备20013102号-1