jpush / jpush-react-native

JPush's officially supported React Native plugin (Android & iOS). 极光推送官方支持的 React Native 插件(Android & iOS)。
http://docs.jiguang.cn
MIT License
1.35k stars 340 forks source link

华为应用市场不让过 #936

Open wangvili opened 11 months ago

wangvili commented 11 months ago

你的运行环境

System: OS: macOS 13.5.2 CPU: (10) arm64 Apple M2 Pro Memory: 97.86 MB / 16.00 GB Shell: version: "5.9" path: /bin/zsh Binaries: Node: version: 20.0.0 path: /usr/local/bin/node Yarn: version: 1.22.19 path: /opt/homebrew/bin/yarn npm: version: 9.8.1 path: /opt/homebrew/bin/npm Watchman: version: HEAD-fcdc2f1 path: /opt/homebrew/bin/watchman Managers: CocoaPods: version: 1.13.0 path: /usr/local/bin/pod SDKs: iOS SDK: Platforms:

期望效果

能够审核通过,告诉我怎么处理,华为审核说到了两个问题,第一【应在用户使用对应业务功能时申请,不得提前弹窗申请权限】,那我应该什么时候初始化,这个我也会问问华为审核。第二【已安装应用列表】权限,华为应用市场要求使用一个权限的同时要求有个弹窗显示一个用于什么目的,那我什么时机自己调用这个弹窗。 6376980f7cf6980be9c4290cd8ed5947

实际效果

告诉我们实际是什么效果。

重现步骤

我在登录页面login.js同意协议之后,会调用消息推送的初始化方法

JpushInit = () => {
    console.log('JpushInit');
    JPush.setLoggerEnable(true);
    JPush.init();
    JCore.setAuth(true);
    JPush.getRegistrationID(result =>
      console.log('registerID:' + JSON.stringify(result)),
    );
    if (Platform.OS === 'android') {
      NativeModules.HnaoCommonModule.jpushRegisterActivityLifecycle();
    }
    //连接状态
    this.connectListener = result => {
      console.log('connectListener:' + JSON.stringify(result));
    };
    JPush.addConnectEventListener(this.connectListener);
    //通知回调
    this.notificationListener = result => {
      console.log('notificationListener:' + JSON.stringify(result));
    };
    JPush.addNotificationListener(this.notificationListener);
    //本地通知回调
    this.localNotificationListener = result => {
      console.log('localNotificationListener:' + JSON.stringify(result));
    };
    JPush.addLocalNotificationListener(this.localNotificationListener);
    //自定义消息回调
    // this.customMessageListener = (result) => {
    //   console.log('customMessageListener:' + JSON.stringify(result));
    // };
    // JPush.addCustomMessagegListener(this.customMessageListener);
    //tag alias事件回调
    this.tagAliasListener = result => {
      console.log('tagAliasListener:' + JSON.stringify(result));
    };
    JPush.addTagAliasListener(this.tagAliasListener);
    //手机号码事件回调
    this.mobileNumberListener = result => {
      console.log('mobileNumberListener:' + JSON.stringify(result));
    };
    JPush.addMobileNumberListener(this.mobileNumberListener);
    // JPush.setAlias({sequence: 123456, alias: '123456'});
  };

之后app每次进入也会初始化,方法写在app.js中

Debug logs

包括 Android 或 iOS 的日志:

应用审核意见:

1.您的应用在首次打开或运行中,未见使用权限对应的相关功能或服务时,提前向用户弹窗申请开启【已安装应用列表】权限,不符合华为应用市场审核标准。

测试步骤:首次打开APP,在登录页面,非服务所必须,应用提前申请权限。

修改建议:应用如需申请权限,应在用户使用对应业务功能时申请,不得提前弹窗申请权限,且权限申请行为需与实际使用目的一致。

请参考《审核指南》第7.20相关审核要求:https://developer.huawei.com/consumer/cn/doc/app/50104-07#h3-1683701612940-2

APP常见个人信息保护问题FAQ请参考:https://developer.huawei.com/consumer/cn/doc/app/FAQ-faq-05#h3-1683685082060-6