uni-app设置开机自启动

这篇具有很好参考价值的文章主要介绍了uni-app设置开机自启动。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文参照设备为 HUAWEI MatePad Pro,设备不同其对应的设置项可能也有所不同

1. 为何需要自启动

  1. 为实现体成分检测分析仪开机默认打开软件的需求
  2. 为实现APP最小化自动唤醒的需求

2.功能描述

​ 实现APP的开机自启,以及自启动需要权限的申请

3.使用流程

  1. 购买插件,选择该插件绑定的项目。插件地址:开机自启 解锁唤醒屏幕 - DCloud 插件市场
  2. 在项目中找到manifest的app原生插件配置中勾选模块
  3. 在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。

**注意事项:**使用HBuilderX2.7.14以下版本,如果同一插件且同一APPID下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json→"App原生插件配置"→"云端插件"列表中删除该插件重新选择

4.权限设置

  1. 设置电池优化:设置→电池→对应软件→启动管理→自动管理切换成关闭

  2. 设置自启动:设置→电池→对应软件→启动管理→手动管理全部打开

    8E6619A2A69F582CDEA27AF1396BD6E6
  3. 设置后台弹窗:设置→应用和服务→权限管理→应用→对应软件→后台弹窗切换为允许

  4. 设置悬浮窗:设置→应用和服务→权限管理→应用→对应软件→悬浮窗切换为允许

    DB1F0A3C1FAABEF05442AD7EEFF710E0

5.示例代码

在App.vue文件中写入:文章来源地址https://www.toymoban.com/news/detail-464651.html

const meaAppModule = uni.requireNativePlugin("MeaApp-System");// 引入后台唤醒至前台插件;仅支持安卓

//当uni-app 初始化完成时触发(全局只触发一次)
onLaunch: function() {
    /********设置开机自动启动开始********/
    this.requestPermission();
    let pwi = uni.requireNativePlugin('lich-PowerOnAutoStart');
    pwi.isIgnoringBatteryOptimizations((d)=>{//判断忽略电池优化是否设置
        if(d){
            pwi.canDrawOverlays((d1)=>{//判断是否允许悬浮窗
                if(!d1){
                    pwi.toastMakeText("请允悬浮窗弹出");//消息提示可自行替换
                }
                pwi.setCanDrawOverlays();//打开浮窗弹设置页面
            })
        }else{
            pwi.toastMakeText("请忽略电源管理选项");
            pwi.setIgnoringBatteryOptimizations();//打开忽略电池优化设置页面
        }
    })
    pwi.setPowerOnAutoStart(true);

    pwi.isPowerOnAutoStart((isAutoStart)=>{
        console.log("isAutoStart------>",isAutoStart);
    })
    /********设置开机自动启动结束********/
},
//当uni-app 隐藏时触发
onHide() {
    setTimeout(()=>{
        console.log("start to show app"); 
        //从后台唤醒至前台
        meaAppModule.setTopApp();
        console.log("end to show app");
    },1000);
},
methods: {
    // 请求权限
    requestPermission() {
      return new Promise((resolve, reject) => {
        console.log("开始设置权限");
        plus.android.requestPermissions(
          [
            "android.permission.RECEIVE_BOOT_COMPLETED", //开机自启动服务
            "android.permission.SYSTEM_ALERT_WINDOW", //悬浮窗能显示在其他app上方
            "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS", //忽略电池优化
            "android.permission.WAKE_LOCK", //休眠唤醒
            "android.permission.DISABLE_KEYGUARD", //允许程序禁用键盘锁
          ],
          function (resultObj) {
            for (var i = 0; i < resultObj.granted.length; i++) {
              var grantedPermission = resultObj.granted[i];
              console.log('已获取的权限:' + grantedPermission);
            }
            for (var i = 0; i < resultObj.deniedPresent.length; i++) {
              var deniedPresentPermission = resultObj.deniedPresent[i];
              console.log('拒绝本次申请的权限:' + deniedPresentPermission);
            }
            for (var i = 0; i < resultObj.deniedAlways.length; i++) {
              var deniedAlwaysPermission = resultObj.deniedAlways[i];
              console.log('永久拒绝申请的权限:' + deniedAlwaysPermission);
            }
            // 若所需权限被永久拒绝,则打开APP设置界面,可以在APP设置界面打开相应权限  
            if (resultObj.deniedAlways.length > 0) {
              // 若授权失败,请在设置页面手动调整
              reject("授权失败:" + JSON.stringify(resultObj.deniedAlways));
              var Intent = plus.android.importClass("android.content.Intent");
              var Settings = plus.android.importClass("android.provider.Settings");
              var Uri = plus.android.importClass("android.net.Uri");
              var mainActivity = plus.android.runtimeMainActivity();
              var intent = new Intent();
              intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
              var uri = Uri.fromParts("package", mainActivity.getPackageName(), null);
              intent.setData(uri);
              mainActivity.startActivity(intent);
            }
            resolve("授权完毕");
          },
          function (error) {
            console.log('申请权限错误:' + error.code + " = " + error.message);
          });
      });
    }
}

到了这里,关于uni-app设置开机自启动的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于uni-app的WiFi设备连接和命令交互——硬件开发指南

    在本篇文章中,我们将介绍如何使用uni-app框架实现通过WiFi连接设备并进行命令交互的硬件开发。为了方便理解和实践,我们将提供相应的源代码示例。 硬件准备 在开始之前,确保你已经准备好以下硬件设备: 一个支持WiFi连接的设备(如ESP8266或ESP32等)。 一个手机或电脑作

    2024年02月05日
    浏览(225)
  • uni-app在app端设置下拉刷新不生效

    下拉刷新这个问题,查了老半天。 我这只小菜鸡,完全不知道view和scroll-view是不一样的! 按照官网的方式, 1. 在 pages.json 里,找到的当前页面的pages节点,并在 style 选项中开启 enablePullDownRefresh: true 2. 在页面中使用uni.startPullDownRefresh();以及uni.stopPullDownRefresh(); 可是可是,我

    2024年02月11日
    浏览(41)
  • uni-app小程序设置页面背景色

    在原生微信小程序中,可以通过下面的设置来设置页面背景色 但是在uni-app上,这样的设置在小程序端并没有起作用。 原因是因为style标签上加了scoped,那么如何在使用scoped的同时又能设置page背景色呢? 解决方案:

    2024年02月15日
    浏览(56)
  • Docker服务以及容器如何设置设备开机自动启动

    如果碰到断电重启,在没有设置自动启动的情况下,我们所有应用(比如redis)都需要重新手动启动一遍,这样就非常麻烦,不能及时处理,所以本文来讲解一下如果设置自动启动,话不多说,直接开始。 使用docker run命令创建容器时没有添加参数 --restart=always ,导致的后果是

    2024年02月04日
    浏览(47)
  • [uni-app]设置运行到微信小程序

    1、设置微信小程序开发工具路径 2、检查微信小程序开发工具是否开启了服务端口 服务端口要是没有开启,会报 × initialize。 3、在uni-app开发工具中点击运行微信开发者工具,微信开发工具运行成功。

    2024年02月13日
    浏览(71)
  • uni-app 开发微信小程序 自动化编译/启动项目

          最近开发一个uni-app的小程序项目,因为习惯使用vscode 而项目不得不借助hbuderx 运行,微信开发工具调试,偶尔还需要使用 ios模拟器, 8g内存的mac 就变的异常卡顿,所以就研究了下通过npm命令去编译、 运行等工程化配置, 这样就不用运行hbuderx 减少内存使用,顺便 

    2024年02月07日
    浏览(59)
  • 关于荣耀手机在HBuilderX中运行uni-app真机测试检测不到设备的解决方案

    本人使用的荣耀手机,安卓11,一开始不管是下载荣耀手机助手还是360手机助手都是检测不到手机设备或者能检测到,但是启动真机调试就会断掉。 解决方案: 1.手机具有开启开发人员选项 2.数据线连接电脑,之后选择 传输文件 3.在开发人员选项中点击USB调试  4.最重要的荣耀

    2024年02月16日
    浏览(91)
  • uni-app 微信小程序 使用mixins设置分享 onShareAppMessage

    参考链接:https://www.jianshu.com/p/844018ca174f 这样设置后,右上角三个点的分享就可以分享了

    2024年02月12日
    浏览(56)
  • [uni-app]微信小程序隐私保护指引设置的处理记录

    关于小程序隐私保护指引设置的公告 一切的起因就是上面这则公告. 2023年9月15日后 自2023年9月15日起,对于涉及处理用户个人信息的小程序开发者,微信要求,仅当开发者主动向平台同步用户已阅读并同意了小程序的隐私保护指引等信息处理规则后,方可调用微信提供的隐私

    2024年02月09日
    浏览(54)
  • uni-app 设置当前page界面进入直接变为横屏模式

    首先 我们打开项目的 manifest.json 在左侧导航栏中找到 源码视图 然后找到 app-plus 配置 在下面加上 然后 我们在需要操作的 page 上 加入代码 其中 onLoad 将模式初始化 onUnload关闭横向 如果你一直要横向的 可以不要这个 然后 onReady 等页面加载好 启动横向模式 因为我们加的注解

    2024年02月04日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包