jpush / jpush/jpush-react-native
华为应用市场不让过
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 1.4k
- Forks
- 348
- PR merge metrics
- No merged PRs in 30d
Description
你的运行环境
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:
- DriverKit 23.0
- iOS 17.0
- macOS 14.0
- tvOS 17.0
- watchOS 10.0
Android SDK:
API Levels:
- "28"
- "29"
- "30"
- "31"
- "32"
- "33"
- "33"
Build Tools:
- 28.0.3
- 29.0.2
- 29.0.3
- 30.0.2
- 30.0.3
- 31.0.0
- 33.0.0
- 33.0.2
- 34.0.0
System Images:
- android-33 | Google APIs ARM 64 v8a
- android-UpsideDownCake | Google APIs ARM 64 v8a
Android NDK: Not Found
IDEs:
Android Studio: 2022.1 AI-221.6008.13.2211.9619390
Xcode:
version: 15.0.1/15A507
path: /usr/bin/xcodebuild
Languages:
Java:
version: 11.0.18
path: /usr/bin/javac
Ruby:
version: 3.0.0
path: /Users/inkcrazy/.rvm/rubies/ruby-3.0.0/bin/ruby
npmPackages:
"@react-native-community/cli": Not Found
react:
installed: 18.2.0
wanted: 18.2.0
react-native:
installed: 0.72.4
wanted: 0.72.4
react-native-macos: Not Found
npmGlobalPackages:
"react-native": Not Found
Android:
hermesEnabled: true
newArchEnabled: false
iOS:
hermesEnabled: true
newArchEnabled: false
-
插件版本:
-
react-native 版本:
"jcore-react-native": "^2.1.5",
"jpush-react-native": "^3.0.5",
期望效果
能够审核通过,告诉我怎么处理,华为审核说到了两个问题,第一【应在用户使用对应业务功能时申请,不得提前弹窗申请权限】,那我应该什么时候初始化,这个我也会问问华为审核。第二【已安装应用列表】权限,华为应用市场要求使用一个权限的同时要求有个弹窗显示一个用于什么目的,那我什么时机自己调用这个弹窗。
实际效果
告诉我们实际是什么效果。
重现步骤
我在登录页面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
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the initialization calls in login.js and app.js, especially JPush.init(), JCore.setAuth(true), and the Android activity lifecycle registration. Compare when these calls trigger the Huawei permission prompt with the Huawei review requirements; done means permission requests occur only with the related service and the app can pass review.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, javascript, react-native
- Domain
- mobile-dev, security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100