uniapp打包成app 华为上架申请权限添加使用说明

因为华为上架需要添加申请权限时的使用说明,否则就无法通过审核,就封装了申请权限时弹出权限说明窗口,利用了本地存储如果权限已经通过就不弹权限说明窗口直接调用回调,如果没有通过或没有就弹出申请权限弹窗。

1.页面组件

<template>
    <view>
        <view v-if="showTips" class="fixed bgFF radio30 absolute tips fs28 color02">
            <view class="lh50">
                {
  
  {actionPermission.title}}使用说明:
            </view>
            <view class="lh50">
                {
  
  {actionPermission.tips}}
            </view>
        </view>
        <u-popup :show="show" @close="close" mode="center" round="30rpx">
            <view class="padding50 bgFF content text-center radio20 fs32 color">
                <view class="wh100">
                    <view class="lh50 marginB40">
                        您已禁止{
  
  {actionPermission.title}},如需要使用请设置!
                    </view>
                    <view @click="handelAllow" class="fw600 paddingT40 borderT1">
                        去设置
                    </view>
                </view>
            </view>
        </u-popup>
    </view>
</template>

<script>
    import {
        tipsConfig
    } from './index.js'
    import permision from './permission.js'
    export default {
        data() {
            return {
                show: false,
                key: 'CAMERA',
                // isSetting: false,
                showTips: false
            }
        },
        computed: {
            actionPermission() {
                return tipsConfig[this.key]
            }
        },
        methods: {
            async showView(key = 'CAMERA', callback) {
                // #ifdef APP-PLUS
                // 获取系统信息
                const systemInfo = uni.getSystemInfoSync();
                // 判断是否为ios
                const isIos = systemInfo?.platform === 'ios';
                if (isIos) {
                    return callback && callback()
                }
                this.key = key
                // 如果返回1 则是允许权限 直接调用回调就行 如果是0则询问 -1则永久拒绝
                const permission = uni.getStorageSync('permission') || {}
                const keyStatus = permission[this.actionPermission?.key] || null
                if (keyStatus == 1) {
                    return callback && callback()
                }
                // else if (keyStatus == -1) {
                //  this.show = true
                //  return
                // }
                const result = await this.requestAndroidPermission()
                permission[this.actionPermission?.key] = result
                uni.setStorageSync('permission', permission)
                if (result == 1) {
                    callback && callback()
                } else {
                    this.show = true
                }
                //#endif
                // #ifndef APP-PLUS
                callback && callback()
                //#endif
            },
            close() {
                this.show = false
                this.showTips = false
            },
            /**
             * 禁止
             */
    
<think>好的,我现在需要处理用户关于UniApp应用上架到应用市场的具体流程的问题。首先,用户已经提供了三个引用内容,其中引用[1]详细列出了安卓应用商店上架所需的材料,引用[2]提到了个人开发者可能遇到的困难,比如需要公司资质和软著,引用[3]则涉及苹果App Store的上架流程和可能的问题。用户的问题集中在UniApp框架下的上架流程和分发指南,所以需要综合这些信息,给出一个结构清晰的回答。 首先,我要确定回答的结构。用户希望了解具体流程,所以分步骤说明会比较清晰。需要区分安卓和iOS平台,因为两者的上架流程和要求不同。引用[1]和[3]分别对应这两个平台,可以作为主要参考。同时,引用[2]提到的软著和公司资质需要注意,特别是国内安卓市场的限制。 接下来,要确保覆盖所有必要的步骤。比如安卓部分需要准备材料、注册账号、提交审核等;iOS部分则需要苹果开发者账号、证书、App Store Connect配置等。同时,要提到可能遇到的常见问题,如审核被拒、材料不全等,并参考引用中的信息给出建议,如提前准备软著、注意权限说明等。 还需要检查是否需要补充其他信息,比如UniApp打包时的配置,如何生安装包,以及测试阶段的重要性。此外,用户可能关心分发渠道,比如除了官方商店外的其他平台,但根据引用内容,重点可能在主流应用市场,如华为、小米应用商店和苹果App Store。 最后,生相关问题时要基于用户可能的后续疑问,比如资质问题、审核失败处理、多平台适配等,确保覆盖用户可能的需求。</think>以下为UniApp应用上架手机应用市场的完整流程指南,分为安卓和iOS两大平台说明--- ### 一、安卓应用市场上架流程 #### 1. 准备材料(需与打包配置一致)[^1] - **基础信息** $$应用名称=HBuilder工程名$$ $$包名=manifest.json中配置的AppID$$ - **技术材料** 32位/64位安装包、应用截图(480*800像素)、LOGO(512*512透明背景) - **资质文件** 软件著作权证书(国内主流市场强制要求)[^2]、企业营业执照(个人开发者受限) - **描述内容** 200字简介、更新日志、权限说明文档(需说明每个权限使用场景) #### 2. 开发者账号注册 - 华为/小米/VIVO等厂商市场需分别注册企业账号(约3-5个工作日审核) - 腾讯应用宝等第三方市场需提供《ICP备案许可证》 #### 3. 安装包优化(UniApp特有) ```javascript // manifest.json必须配置 "app-plus": { "distribute": { "android": { "abiFilters": ["armeabi-v7a","arm64-v8a"], // 支持64位架构 "permissions": ["<uses-permission android:name.../>"] // 精确声明权限 } } } ``` #### 4. 提交流程 华为开发者联盟示例: 1) 上传APK至"我的应用" 2) 填写应用分类/年龄分级 3) 提交《测试报告》(需包含设备兼容性测试数据) 4) 签署《电子合同》(自动生) 5) 等待3-15个工作日审核 --- ### 二、iOS App Store上架流程 #### 1. 证书准备(需Mac电脑)[^3] - 创建App ID(Bundle ID必须与manifest.json中iOS包名一致) -Distribution证书(p12文件)和描述文件(mobileprovision) - 在HBuilderX配置打包证书: ``` 发行 -> 原生App-打包 -> 选择iOS证书 -> 生ipa ``` #### 2. App Store Connect配置 1) 新建App记录(SKU建议使用包名倒写) 2) 上传IPA文件(推荐使用Transporter工具) 3) 设置年龄分级/隐私问卷(需与APP内容严格一致) 4) 提交审核注意事项: - 禁止热更新功能 - 内购必须使用IAP支付 - 含登录功能需提供测试账号 #### 3. 常见审核被拒解决方案 - 条款2.1:需补充详细的功能说明视频 - 条款3.1.1:移除APP内诱导分享功能 - 条款5.1.1:更新《隐私协议》增加数据收集声明 --- ### 三、跨平台适配建议 1. 使用条件编译处理平台差异: ```javascript // #ifdef APP-PLUS const platform = uni.getSystemInfoSync().platform; // #endif ``` 2. 上架前必须进行真机测试: - Android重点测试不同DPI设备显示 - iOS需验证面容ID/触控栏等特性 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值