插件地址:https://ext.dcloud.net.cn/plugin?id=15897

插件功能概述

该插件主要用于安卓应用的权限申请,通过在应用中弹出权限申请的使用目的说明,帮助开发者解决华为、小米等应用商店的上架审核问题。它可以在不破坏原有业务逻辑的情况下,全局处理权限申请。

主要功能特点

  1. 全局处理权限申请:通过在main.js中引入插件,开发者可以全局拦截uniAPI的调用,并在调用时弹出权限申请的说明。
  2. 不改动业务代码:插件的使用不会破坏原有的业务逻辑,开发者无需修改业务代码即可实现权限申请的说明弹窗。
  3. 支持多种权限申请:包括但不限于chooseImagechooseVideosaveImageToPhotosAlbumgetLocationmakePhoneCallgetRecorderManager等。
  4. 优化弹窗显示:提供优化后的弹窗显示效果,提升用户体验。
  5. 支持uni_modules:符合uni_modules规范,方便开发者使用。

使用方法

方式一:全局处理(推荐)

main.js中引入插件,并添加需要拦截的uniAPI及其对应的权限申请说明:

import { addPermisionInterceptor, removePermisionInterceptor } from '@/uni_modules/x-perm-apply-instr/js_sdk/index.js';

addPermisionInterceptor('chooseImage', '为了修改个人头像和发布信息图片视频等, 我们需要申请您设备的相机和存储权限');
addPermisionInterceptor('saveImageToPhotosAlbum', '为了保存推广海报到手机相册, 我们需要申请您设备的存储权限');
// 其他API的拦截添加方式同上

  • 参数说明
    • 第一个参数为uniAPI的名称。
    • 第二个参数为权限申请的说明文本。
    • 第三个参数(可选)为布尔值,表示是否只询问一次权限。如果用户拒绝,则后续调用该API时不会再次弹出权限申请弹窗。

方式二:手动控制权限说明弹窗

如果需要在特定功能处手动控制权限说明弹窗的显示和关闭,可以使用以下代码:

import { popup } from '@/uni_modules/x-perm-apply-instr/js_sdk/native_popup.js';

// 显示权限申请说明弹窗
popup.show({
    title: '权限申请说明',
    content: '为了xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
});

// 关闭弹窗
popup.close();

更新记录

  • 2.0.3(2024-12-21):增加连接蓝牙设备支持startBluetoothDevicesDiscovery
  • 2.0.2(2024-11-18):优化popup显示效果。
  • 2.0.1(2024-11-07):优化弹框效果。

平台兼容性

  • Vue2:支持
  • Vue3:支持
  • App:支持(app-vue
  • 快应用、微信小程序、支付宝小程序、百度小程序、字节小程序、QQ小程序:暂不支持
  • 钉钉小程序、快手小程序、飞书小程序、京东小程序、鸿蒙元服务:暂不支持
  • H5-Safari、Android Browser、微信浏览器(Android)、QQ浏览器(Android)、Chrome、IE、Edge、Firefox、PC-Safari:暂不支持

注意事项

  1. 重复申请权限问题:部分厂商的部分系统版本可能会出现重复申请权限的情况。如果影响审核,建议使用方式二自行处理或尝试其他插件。
  2. getRecorderManager的使用:如果需要拦截getRecorderManager,请不要在script标签下直接初始化,而应在onLoadonReady中调用,否则会导致拦截失败。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐