当前位置: 首页 > wzjs >正文

利用网站开发诈骗百度扫一扫网页版

利用网站开发诈骗,百度扫一扫网页版,网络服务者,民用网络架构获取权限前给用户提示,并在用户拒绝后48小时内不再弹窗请求授权。 优化方案分析 您的代码已经实现了基本的权限申请逻辑,但可以进一步优化以满足应用商店的审核要求。 1. 权限申请前的用户提示优化 当前代码中已经包含了权限申请前的提示功能&#x…

获取权限前给用户提示,并在用户拒绝后48小时内不再弹窗请求授权。

优化方案分析

您的代码已经实现了基本的权限申请逻辑,但可以进一步优化以满足应用商店的审核要求。

1. 权限申请前的用户提示优化

当前代码中已经包含了权限申请前的提示功能,但可以增强用户体验:

// 优化提示内容,增加更友好的解释
uni.showModal({title: "需要以下权限",content: "为了给您提供更好的服务,我们需要以下权限:\n\n" + "• 相机权限 - 用于拍照上传功能\n" +"• 存储权限 - 用于选择照片和文件\n\n" +"我们承诺严格保护您的隐私安全",success(res) {if (res.confirm) {// 用户同意后申请权限plus.android.requestPermissions(requestPermissions, (e) => {// 处理权限申请结果});} else {// 用户拒绝,记录时间androidPermissions[permission] = new Date().getTime();axCc.saveStorage("_androidPermissions", androidPermissions);}}
});

2. 48小时限制逻辑优化

您的代码中已经实现了48小时限制逻辑,但可以更明确:

// 检查是否在48小时限制期内
const nowTime = new Date().getTime();
const lastDeniedTime = androidPermissions[permission] || 0;
const hours48 = 48 * 60 * 60 * 1000; // 48小时的毫秒数if (lastDeniedTime && (nowTime - lastDeniedTime) < hours48) {// 在48小时内,不再请求return back ? back(-2) : vueSelf.$callback("abAct.userPermissions", proj, -2);
}

3. 权限申请流程优化

建议将权限申请流程分为几个清晰的阶段:

  1. 权限检查阶段:检查是否已有权限
  2. 时间限制检查:检查是否在48小时限制期内
  3. 用户提示阶段:向用户解释权限用途
  4. 权限申请阶段:实际申请权限
  5. 结果处理阶段:处理用户选择

完整优化代码

以下是优化后的代码结构建议(不改变原有逻辑,仅增强可读性和用户体验):

userPermissions(v?: string, back?: any) {proj = proj || vueSelf.$proj(tag, source);// #ifdef APPtry {if (axCc.info.platform == "android") {let permissionDs: any[] = JSON.parse(v);let permissionState = false;let permissionDenied = "";// 解析权限配置if (!Array.isArray(permissionDs)) {if (Array.isArray(permissionDs.permissionList)) {permissionState = permissionDs.state;permissionDenied = permissionDs.denied;permissionDs = permissionDs.permissionList;} else {permissionDs = [permissionDs];}}// 初始化权限存储let androidPermissions = SdkActs._androidPermissions;if (!androidPermissions) {androidPermissions = axCc.getStorage("_androidPermissions") || {};SdkActs._androidPermissions = androidPermissions;}const mainActivity = plus.android.runtimeMainActivity();const nowTime = new Date().getTime();const HOURS_48_MS = 48 * 60 * 60 * 1000;// 过滤已授权和受限权限let requestPermissions = [];let needExplain = false;let explanation = "";for (let permissionD of permissionDs) {const permission = permissionD.androidPermission;// 已授权检查if (androidPermissions[permission] === 1 || mainActivity.checkSelfPermission(permission) === 0) {androidPermissions[permission] = 1;continue;}// 48小时限制检查const lastDeniedTime = androidPermissions[permission] || 0;if (lastDeniedTime && (nowTime - lastDeniedTime) < HOURS_48_MS) {if (permissionDenied) {return showDeniedModal(back, proj);}return back ? back(-2) : vueSelf.$callback("abAct.userPermissions", proj, -2);}// 准备请求的权限requestPermissions.push(permission);if (permissionD.tips && !permissionState) {explanation += `${permissionD.tips}\n`;needExplain = true;}}// 保存更新的权限状态axCc.saveStorage("_androidPermissions", androidPermissions);// 处理需要请求的权限if (requestPermissions.length === 0) {return back ? back(1) : vueSelf.$callback("abAct.userPermissions", proj, 1);}if (needExplain) {return showPermissionExplanation(explanation, requestPermissions, back, proj);}// 直接请求权限return requestAndroidPermissions(requestPermissions, back, proj);}} catch (e) {console.error(e);}// #endifreturn back ? back(1) : vueSelf.$callback("abAct.userPermissions", proj, 1);
}// 辅助函数:显示拒绝后的提示
function showDeniedModal(back, proj) {uni.showModal({title: "提示",content: "您已拒绝授权,48小时内将不再提示",showCancel: false,complete() {back ? back(-2) : vueSelf.$callback("abAct.userPermissions", proj, -2);}});return true;
}// 辅助函数:显示权限解释
function showPermissionExplanation(explanation, permissions, back, proj) {uni.showModal({title: "权限申请",content: "我们需要以下权限来提供完整服务:\n\n" + explanation,success(res) {if (res.confirm) {requestAndroidPermissions(permissions, back, proj);} else {recordDeniedPermissions(permissions);back ? back(0) : vueSelf.$callback("abAct.userPermissions", proj, 0);}}});return true;
}// 辅助函数:记录被拒绝的权限
function recordDeniedPermissions(permissions) {const nowTime = new Date().getTime();const androidPermissions = SdkActs._androidPermissions || {};permissions.forEach(p => {androidPermissions[p] = nowTime;});axCc.saveStorage("_androidPermissions", androidPermissions);SdkActs._androidPermissions = androidPermissions;
}// 辅助函数:实际请求权限
function requestAndroidPermissions(permissions, back, proj) {plus.android.requestPermissions(permissions, (e) => {const androidPermissions = SdkActs._androidPermissions || {};const nowTime = new Date().getTime();// 处理授权结果e.deniedAlways.concat(e.deniedPresent).forEach(p => {androidPermissions[p] = nowTime;});e.granted.forEach(p => {androidPermissions[p] = 1;});axCc.saveStorage("_androidPermissions", androidPermissions);SdkActs._androidPermissions = androidPermissions;// 回调处理if (e.deniedAlways.length > 0) {back ? back(-2) : vueSelf.$callback("abAct.userPermissions", proj, -2);} else if (e.deniedPresent.length > 0 || e.granted.length === 0) {back ? back(-1) : vueSelf.$callback("abAct.userPermissions", proj, -1);} else {back ? back(1) : vueSelf.$callback("abAct.userPermissions", proj, 1);}});return true;
}

注意事项

  1. 华为应用市场特殊要求:华为应用市场特别强调在调用终端权限时应同步告知用户申请该权限的目的。建议在提示信息中明确说明权限用途。

  2. 权限分组处理:Android将危险权限分为不同的权限组,当用户授予某个组的一个权限时,该组中的其他权限也会自动获得授权。可以利用这一点优化权限申请策略。

  3. 用户体验优化:可以考虑使用更美观的自定义弹窗来替代系统默认的权限申请界面,但核心逻辑保持不变。

  4. 隐私政策合规:确保您的应用符合各大应用市场的隐私政策要求,特别是关于权限说明的部分。

  5. 测试验证:使用HBuilderX 4.01及以上版本测试时,Vue2项目需要使用自定义基座测试监听权限申请的功能,标准基座暂不支持测试。

通过以上优化,您的权限申请逻辑将更符合应用商店的审核要求,同时提供更好的用户体验。

http://www.dtcms.com/wzjs/261540.html

相关文章:

  • 什么网站做3d模型能赚钱免费自媒体网站
  • 网站卡的原因百度浏览器在线打开
  • 怎么帮自己做的网站申请地址公司搜索seo
  • 经营性网站备案申请书今日重大事件
  • 期货做程序化回测的网站上海seo推广服务
  • 做游戏视频网站用什么程序好百度竞价推广账户优化
  • 网站的彩色标签怎么做的怎么制作一个网站
  • wordpress一定要本地建站吗台湾新闻最新消息今天
  • 建设银行网站源码企业新闻稿发布平台
  • 经济与政府网站建设外链提交
  • 高校网站群建设青岛seo网络推广
  • 个人写真照seo没什么作用了
  • 太原公司网站建设自媒体是什么
  • 香河做网站短视频seo营销
  • 个人做健康网站好吗网络营销推广难做吗
  • 百度推广网站可以链接到同公司另一个网站吗百度推广找谁做
  • 英文b2c网站建设百度账号登录中心
  • 韶关住房和城乡建设网站无锡网站seo顾问
  • 珠海网站建设 超凡科技app推广工作是做什么的
  • 司机找事做那个网站靠谱南宁企业官网seo
  • 现在手机网站用什么做外链推广是什么意思
  • 游戏策划要学什么500强企业seo服务商
  • 网站首页html网站软件下载app
  • 怎么做用其他网站仿制一个网站图片优化网站
  • 男人女人做邪恶的事网站网络推广公司北京
  • 网站的记住密码功能怎么做怎样精准搜索关键词
  • 域名注册网站的域名哪里来的怎么建立网站?
  • 中国建设银行青岛分行网站太原seo外包服务
  • wordpress 三站合一百度推广营销方案
  • 静态网站被同行使用国际新闻最新消息中国