账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    使用vue开发webApp,h-builder打包成原生行为包安卓手机自带回退键的问题
    • 维姐,不接语音请打字2020-01-01 00:00
    59
    0

    自己写的webapp,在安卓手机上,按一次回退键,就会退出app,回到桌面,而不是像原生app一样,会有一个提示,例如,“再按一次退出应用”的这种提示,但是还是没有实现回退的效果
    我自己在用h-buider在index.html里加了一串代码
    mui.init({

    keyEventBind: {

    backbutton: true //关闭back按键监听
    }
    });
    // //首页返回键处理
    // //处理逻辑:1秒内,连续两次按返回键,则退出应用;
    var first = null;
    mui.back = function() {

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

    mui.init({
    keyEventBind: {

    backbutton: true  //关闭back按键监听

    }
    });
    // //首页返回键处理
    // //处理逻辑:1秒内,连续两次按返回键,则退出应用;
    var first = null;
    mui.back = function() {

    //首次按键,提示‘再按一次退出应用’
    if (!first) {

    first = new Date().getTime();//记录第一次按下回退键的时间
    mui.toast('再按一次退出应用');//给出提示
    history.go(-1)//回退到上一页面
    setTimeout(function() {//1s中后清除
        first = null;
    }, 1000);

    } else {

    if (new Date().getTime() - first < 1000) {//如果两次按下的时间小于1s,
        plus.runtime.quit();//那么就退出app

    1
    } } };
    也引入了mui.min.js,但就是没有效果,请问要实现这样的效果应该如何写### 问题描述

    问题出现的环境背景及自己尝试过哪些方法

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)

    你期待的结果是什么?实际看到的错误信息又是什么?

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • ぴ夏末ζ烟雨﹌ 普通会员 1楼

      在Vue.js开发Web应用时,我们可以通过以下步骤将HBuilder构建的原生行为包(APPX)打包成适用于安卓手机的回退键返回功能:

      1. 构建原生行为包
      2. 首先,确保HBuilder已经创建了一个符合安卓手机开发需求的原生APPX文件。APPX文件应包含必要的AndroidManifest.xml文件,包含与应用相关的权限、权限类型、配置文件、服务和应用组件等信息。

      3. 在HBuilder的构建环境中,创建一个新的APPX项目并输入以下命令: android build

      4. 在命令行中,选择应用的构建选项,如“APK”、“Debug”或“Release”模式,并选择打包到哪个平台(Android 10或更高版本),例如: android build --target android-10 --release
      5. HBuilder会自动生成一个名为“appx”的APPX文件,其中包含应用的基本结构和所需的资源。

      6. **使用adbadb reverse命令生成回退键:

      7. 安装并配置adb工具: npm install -gadb adb install
      8. 在命令行中,打开与APK文件对应的目录,例如: cd /path/to/appx
      9. 使用以下命令在Android设备上生成回退键: adb reverse package com.example.appname com.example.appname.appkey
      10. 运行上述命令后,adb会返回一个包含回退键的字符串,例如: "com.example.appname/com.example.appname.appkey:armeabi-v7-app"

      11. 替换APPX包中的原生行为包名和路径

      12. 在替换后的APPX文件中,找到与原生APPX文件对应的类或包名,例如: <activity android:name=".YourActivity" android:theme="@style/AppTheme" android:windowSoftInputMode="adjustPan"> <!-- ... --> </activity>
      13. YourActivity类中,添加一个用于触发回退键的函数,例如: java @Override public void onBackButtonPressed() { // 在这里处理回退键的触发 super.onBackButtonPressed(); // 如果需要,执行重定向或其他操作 // ... }
      14. 将上述函数保存在你的APPX文件中,确保与原生APPX文件中的函数名和文件路径保持一致。

      15. 在你的Web应用中,使用@Override装饰器替换onBackButtonPressed函数

      16. 在你的Vue.js组件中,添加@Override装饰器来调用onBackButtonPressed函数。以下是一个简单的示例:

      ```html

      ```

      1. 打包打包到APK文件
      2. 在命令行中,使用以下命令打包APPX文件到APK文件: adb reverse package com.example.appname com.example.appname.appkey
      3. 运行上述命令后,APK文件中的回退键包名和路径应该与原生APPX文件中的相应内容一致。

      以上步骤将一个HBuilder构建的原生行为包打包成适用于安卓手机的回退键返回功能,当用户点击回退按钮时,应用程序将调用handleBackButton函数处理回退键的触发,并在控制台输出“Back button pressed”。通过这种方式,你的Web应用可以在用户返回主屏幕时,自动执行特定的操作或显示一个相应的提示消息。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部