Uniapp上架华为应用商店,有点难搞

Uniapp上架华为应用商店,有点难搞

我并不擅长前端,顶多算入门级别,做个简单的小程序、小应用没啥问题,要做得好看且炫丽的效果,那就要花很多时间和精力去百度、去学习。这次,朋友找我帮忙做个项目管理相关的手机App,需要消息推送。

在推送这当面,uni-push2用起来就很方便,添加相应模块即可,可是我们的App切换到后台或者被进程杀掉后,就接收不到消息了。

这离线消息确实比较麻烦了,需要去各个手机厂商开发者申请账号(企业认证),然后,还要上架应用商店,上架应用又要涉及到软件著作权

他们大部分同事都是小米和华为,所以,暂时就考虑这两个。小米各方面相对比较宽松,没用多少精力和时间就完成上架。华为则不一样,弄得我心力交瘁啊。

下面就是我在华为上架遇到的一些问题:

  • 1.您的应用在运行时,向用户索取(相机、存储)等权限,未同步告知权限申请的使用目的,不符合华为应用市场
  • 2.您的应用在首次打开或运行中,在用户未主动点击权限对应的相关功能或服务时,提前向用户弹窗申请开启【存储】权限
  • 3.您的应用在用户拒绝存储权限后,存在无法进入问题
  • 4.您应用内服务协议展示的公司名称/应用名称与在AppGallery Connect上提交的应用名称/开发者信息不一致,不符合华为应用市场审核标准。
  • 5.您的应用分类与应用实际功能和用途不相符,不符合华为应用市场审核标准
  • 6.您的应用内未提供账号注销服务,不符合华为应用市场审核标准
  • 7.您的应用内存在收集个人信息行为,但未勾选隐私标签,不符合华为应用市场审核标准。
  • 8.经检测发现,您的应用存在收集用户的个人信息或权限的行为(应用获取用户信息:加速度传感器),但未在应用内的隐私政策/在AppGallery Connect上提交的隐私政策网址中进行说明

其中,4、5、6、7、8这个五个问题都是很好处理,就是一些基础功能的调整和协议说明,在提供的协议信息里面的,补充完整即可。

第2、3两个问题,我们在manifest.jsonapp-plus->distribute->android下面添加如下配置即可

1
2
3
4
5
"permissionExternalStorage" : {
//可选,JSON对象,Android平台应用启动时申请读写手机存储权限策略
"request" : "none", //必填,字符串类型,申请读写手机存储权限策略,可取值none、once、always
"prompt" : "应用保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片、媒体内容和文件)权限,请允许。" //可选,字符串类型,当request设置为always值用户拒绝时弹出提示框上的内容
}

最困扰的还是第一个,我调了好几次,就是搞不好。在网上找了不少资料,大多都是封装了一个authorizeUtils方法,然后在调用相册的地方取调用相关的权限检测,为此,我还去改了一下uView 2.0的代码,可是还是不得行。最后在dcloud插件市场中看到一个插件-权限申请说明、权限申请的使用目的、华为上架、小米上架(无需改动代码、全局拦截),它的用法很简单,导入插件到项目中,然后在main.js中引用即可

1
2
3
4
import { addPermisionInterceptor, removePermisionInterceptor } from '@/uni_modules/x-perm-apply-instr/js_sdk/index.js'
addPermisionInterceptor('chooseImage', '为了xxx等, 我们需要申请您设备的相机和存储权限')
addPermisionInterceptor('chooseVideo', '为了xxx等, 我们需要申请您设备的相机和存储权限')

这个插件真是解决了我很大的问题的,直接通过全局拦截,不用一个个在调用处去修改。

用户协议隐私政策这块,我们可以先找一个协议生成器(如:协议猫),然后在生成的协议文件进行修改。协议要内容要将App涉及到的内容描述清楚。

总之在要上架的应用中,原生接口的调用要尽量少,不需要的模块就去掉,在调用时要尽量描述得足够详细,尽量不要获取过多信息。

本来就是一个很小的应用,各种认证、各种应用权限处理起来。还真是麻烦。

Uniapp上架华为应用商店,有点难搞

https://blogs.52fx.biz/posts/9089264882.html

作者

eyiadmin

发布于

2024-08-26

更新于

2024-08-26

许可协议

评论