- 在日记详情页修改日记后,回到详情页日记内容没有变更
- 草稿功能未实现
- 别人的日记页不应该提示 写一篇日记吧
- 写日记后,我的日记页自动刷新
- 日记本页优化
- 日记本添加编辑页
- 设置页
- 回复某人偶尔会丢失回复人的问题
- iOS 不做更新检查
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/
目前使用的 0.53 版本,iOS 完美,android 有个 TextInput 的 崩溃问题
0.55 在 iOS 上问题较多,自带输入法无法输入中文,react-native-navigation 兼容问题(隐藏 tab 不稳定,有时候出白条,有时候闪烁) android 没有仔细测试,不清楚具体问题多少
android App 在后台状态,点击通知 App 会重置
react-native-navigation 的启动逻辑是在 MainActivity 启动时,主 Activity 从 MainActivity 替换成 NavigationActivity 见:https://wix.github.io/react-native-navigation/#/android-specific-use-cases?id=why-overriding-these-methods-in-mainactivity-won39t-work 而 jpush 处理点击时,总是去激活 MainActivity ,这就导致总会产生一个新的 NavigationActivity
修改 jpush-react-native/android/src/main/java/cn/jpush/reactnativejpush/JPushModule.java 544 行
if (isApplicationRunningBackground(context)) {
ComponentName componentName = getTopActivity(context);
intent = new Intent();
if (componentName != null) {
intent.setClassName(componentName.getPackageName(), componentName.getClassName());
} else {
intent.setClassName(context.getPackageName(), context.getPackageName() + ".MainActivity");
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
} else {
并增加一个函数 getTopActivity
private static ComponentName getTopActivity(Context context){
ActivityManager activityManager = (ActivityManager) context.getSystemService(Service.ACTIVITY_SERVICE);
if (activityManager == null) return null;
List<ActivityManager.RunningTaskInfo> runningTaskInfoList = activityManager.getRunningTasks(Integer.MAX_VALUE);
for (ActivityManager.RunningTaskInfo taskInfo : runningTaskInfoList) {
if (taskInfo.topActivity.getPackageName().equals(context.getPackageName())){
return taskInfo.topActivity;
}
}
return null;
}
App 后台,或者退出后,通过通知唤起,都会进入 isApplicationRunningBackground 的分支条件 从后台唤起,应该激活 NavigationActivity ,而退出状态下唤起,不能直接启动 NavigationActivity,因为缺少初始化的参数 NavigationActivity 的初始化时通过 MainActivity 运行的 所以需要先获取当前激活的 Activity,如果有,则直接激活,如果没有,则启动 MainActivity
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.util.SparseArray.get(int)' on a null object reference at cn.jpush.reactnativejpush.JPushModule$MyJPushMessageReceiver.onAliasOperatorResult(JPushModule.java:654) at cn.jpush.android.a.a$a.run(SourceFile:76) at android.os.Handler.handleCallback(Handler.java:808) at android.os.Handler.dispatchMessage(Handler.java:101) at android.os.Looper.loop(Looper.java:166) at android.os.HandlerThread.run(HandlerThread.java:65)
修改 jpush-react-native/android/src/main/java/cn/jpush/reactnativejpush/JPushModule.java 85 行
if (null != sCacheMap) {
sCacheMap.clear();
- sCacheMap = null; //删掉这行
}
如果 android targetSdkVersion >= 24 ,自动更新打开安装包的动作会报错
RNFetchBlob.android.actionViewIntent(resp.path(), 'application/vnd.android.package-archive');
所以 sdk 暂时使用 23
官方有一个修复的pull,不过还没合并
wkh237/react-native-fetch-blob#614
需要持续关注
建议按照官方的 pod 方式安装 注意:安装 pod 后,需要从 xcode 里打开 xcworkspace 文件才能编译通过
react-native-fabric react-native link 的时候,会通过 pod 安装,但是 pod 方式安装编译失败, 暂时没有找到解决办法,最好是 link 后恢复自动修改的 pod 文件,通过手动方式安装
修改 react 源码 /React/Views/RCTRefreshControl.m 57 行
- CGPoint offset = {scrollView.contentOffset.x, scrollView.contentOffset.y - self.frame.size.height};
+ CGPoint offset = {scrollView.contentOffset.x, scrollView.contentOffset.y - 60};
一直存在的问题,官方一直没有修改
已确认 RN bug
反馈:facebook/react-native#18403 (comment)
pull:facebook/react-native#18456
还未合并,持续关注
可手工修改代码解决
oblador/react-native-vector-icons#626
android 目前加载图片没有进度条,因为官方的 Image 组件没有获取进度的事件
第三方组件 react-native-fast-image 有进度事件 但是 onLoad 事件触发诡异,无法实现加载进度
react-native-navigation 在 android 上 debug 时没有进度条,如果无法链接更新服务器则会卡在启动屏上
rm ./node_modules/react-native/local-cli/core/fixtures/files/package.json rm ./node_modules/react-native/local-cli/core/fixtures/files/package.json