成熟的稻穗
成熟的稻穗
  • 发布:2024-08-26 18:24
  • 更新:2024-08-27 18:18
  • 阅读:172

【已解决】vivo上架驳回,不让调用拨号权限

分类:uni-app

uniapp拨打电话必须要CALL_PHONE权限申请吗? 目前vivo驳回原因不让申请拨号权限。

上架驳回原因 提前向用户申请弹窗申请开启电话权限。但应用实际效果是通过手动触发才调用电话权限。

联系vivo在线客服了解详细原因,客服给出解释不建议调用拨打电话权限,直接拨打即可。

后面我把通话权限去掉重新自检测,通过了应用上架审核,这块可以排查出代码没有使用到plus默认请求,比如app.vue\main.js。

function call(){    
    // 导入Activity、Intent类    
    var Intent = plus.android.importClass("android.content.Intent");    
    var Uri = plus.android.importClass("android.net.Uri");    
    // 获取主Activity对象的实例    
    var main = plus.android.runtimeMainActivity();    
    // 创建Intent    
    var uri = Uri.parse("tel:10010"); // 这里可修改电话号码    
    var call = new Intent("android.intent.action.CALL",uri);    
    // 调用startActivity方法拨打电话    
    main.startActivity( call );    
    // ...    
}  

plus.device.dial( "10086", false ); 

上述代码都有测试过,均无法通过平台上架审核。

针对以上问题,可否提供一下指导帮助,感谢。

2024-08-26 18:24 负责人:无 分享
已邀请:
成熟的稻穗

成熟的稻穗 (作者) - csdds.cn

// 获取宿主上下文  
var main = plus.android.runtimeMainActivity();  
var Uri = plus.android.importClass("android.net.Uri");  
// 通过反射获取Android的Intent对象  
var Intent = plus.android.importClass("android.content.Intent");  
// 创建Intent,设置Action为ACTION_DIAL  
var intent = new Intent("android.intent.action.DIAL");  
// 设置要拨打的电话号码  
intent.setData(Uri.parse("tel:" + phoneNumber));  
// 启动Intent  
main.startActivity(intent);

上述代码可以解决此问题,使用Intent.ACTION_DIAL代替ACTION_CALL

ACTION_DIAL可直接使用。
会激发拨号界面,需要用户自己手动按下呼叫键来呼叫。

ACTION_CALL需要申请权限。
会直接进行呼叫。

特在此记录

成熟的稻穗

成熟的稻穗 (作者) - csdds.cn

现在的实际效果: 用户点击拨号图标才会调起拨号权限,不会默认进入应用就调起。

VIVO平台回复:用户点击不建议调用拨号权限,直接拨打即可。

DCloud_App_Array

DCloud_App_Array

确认下manifest.json勾选了什么权限?去掉拨打电话权限重新打包即可。

  • 成熟的稻穗 (作者)

    <uses-permission android:name=\"android.permission.CALL_PHONE\"/>

    目前只有这一个权限, 如果把这个权限去掉的话,配合上面两个plus任意一个api都可以吗?


    我之前试的好像去掉之后再调用就没反应了,不会执行。 但是也不排除可能是我没有打正式包来测试

    2024-08-26 19:37

  • DCloud_App_Array

    回复 成熟的稻穗: manifest.json中的配置需要重新打包才能生效。

    2024-08-26 20:54

  • 成熟的稻穗 (作者)

    回复 DCloud_App_Array: 重新打包过了,CALL_PHONE给去掉了,然后用的plus.device.dial( "10086", false ); 点击没有反应

    2024-08-26 21:10

  • 成熟的稻穗 (作者)

    问题解决啦,换了个类,感谢答复

    2024-08-27 18:23

  • LGG233

    回复 成熟的稻穗: 所以你是怎么解决的,分享出来你的经验!

    2024-08-28 09:52

  • 成熟的稻穗 (作者)

    回复 3***@qq.com: 最上面有回复

    2024-08-28 23:45

要回复问题请先登录注册