美文网首页
H5项目如何打包成APP

H5项目如何打包成APP

作者: 喜欢走弯路的人 | 来源:发表于2023-04-17 12:51 被阅读0次

    一、下载HBuilderX打包工具,HBuilderX下载地址

    二、打开HBuilderX工具

    1、选择文件>新建>项目,新建5+APP项目,选择默认模板即可,填入项目名称和地址后,点击创建即可。

    2、创建成功后找到文件夹所在位置,删除manifest.json 外的所有文件

    3、将H5打包的文件拷贝到当前目录下

    即 npm run build 将我们的项目打包生成的dist文件下的所有文件拷贝过来。

    4、配置APP

    点击 manifest.json 文件,这里我们可以配置应用标识、应用名称、图标配置等等,可以按自己的需求来一一配置。

    5、发行-云打包

    由于是自己调试,可以选择公共测试证书,然后点击打包即可。注意,第一次打包还需要实名认证账号,在DCloud官网认证登陆认证下即可。

    认证地址  认证指导

    6、安装apk

    打包预计2-5分钟,打开本地目录即可找到对应的apk(unpackage/release/apk/H58E48E7B__20230417093646.apk),发送到手机上安装即可。

    7.1、在开发app的时候,会遇到header的状态栏颜色和系统手机自带的颜色(顶部手机状态条)不一致,在mainfest.json这个文件里的 plus里设置 statusbar即可

    7.2、在开发app的时候,需要启用 https 协议,在mainfest.json这个文件里添加如下代码即可

    8、h5移动端,监听手机返回键,两次退出app

    index.html文件中加入一下内容 参考地址

    <script>

        document.addEventListener('plusready', function () {

              var first = null;

              var webview = plus.webview.currentWebview();

              plus.key.addEventListener('backbutton', function () {

                  webview.canBack(function (e) {

                      if (e.canBack) {

                        webview.back(); //这里不建议修改自己跳转的路径 

                      } else {

                        //首次按键,提示‘再按一次退出应用’ 

                        if (!first) {

                          first = new Date().getTime(); //获取第一次点击的时间戳 

                          plus.nativeUI.toast("再按一次退出应用", {

                            duration: 'short'

                          }); //通过H5+ API 调用Android 上的toast 提示框 

                          setTimeout(function () {

                            first = null;

                          }, 1000);

                        } else {

                            // 获取第二次点击的时间戳, 两次之差 小于 1000ms 说明1s点击了两次,

                          if (new Date().getTime() - first < 1000) { 

                            plus.runtime.quit(); //退出应用 

                  }

                }

              }

            })

          });

        });

    </script>

    9、H5开发APP判断手机导航栏高度,该高度以px为单位

                let immersed = 0;

                let ms = (/Html5Plus\/.+\s\(.*(Immersed\/(\d+\.?\d*).*)\)/gi).exec(navigator.userAgent);

                if(ms&&ms.length>=3) { // 当前环境为沉浸式状态栏模式

                  immersed = parseFloat(ms[2]);// 获取状态栏的高度

                }

    10、Hbuilderx打包成APP时,实现全屏横屏旋转的方法

    方法一:通过重力感应、横竖屏配置

    在manifest.json文件中配置screenOrientation,取值为数组,可取值如下:

    "portrait-primary":竖屏正方向;"portrait-secondary":竖屏反方向;"landscape-primary":横屏正方向;"landscape-secondary":横屏反方向

    "screenOrientation" : [

            "portrait-primary",

            "portrait-secondary",

            "landscape-primary",

            "landscape-secondary"

        ],

    方法二、手动切换横屏竖屏

          lockOrientation(orientation) {  //参数 ' landscape':横屏   'portrait' :竖屏

            if (typeof plus !== 'undefined' && typeof plus.screen !== 'undefined') {

              plus.screen.lockOrientation(orientation)

            }

          }

    11、设置安卓底部虚拟按键背景颜色

    index.html文件的script标签中加入一下内容参考地址

      // 设置安卓底部虚拟按键背景颜色

      function plusReady(){

        var main = plus.android.runtimeMainActivity();

        var windowMe = main.getWindow();

        plus.android.importClass(windowMe);

        var Color = plus.android.importClass("android.graphics.Color");

        //如parseColor("#ffffff")设置为白色

        plus.android.invoke(windowMe,"setNavigationBarColor",Color.parseColor("#0D1114"));

      }

      if(window.plus){

        plusReady();

      }else{

        document.addEventListener('plusready', plusReady, false);

      }

    相关文章

      网友评论

          本文标题:H5项目如何打包成APP

          本文链接:https://www.haomeiwen.com/subject/qcpfjdtx.html