xx0, rn api坑点记录

1. 对于获取屏幕高度Dimensions.get('window').height; 在安卓8上是屏幕的高度,在更高版本上是安全区域得高度,即不包含状态栏和下方按键区域

xx1, 问题一描述

安卓端,在页面里使用react-native-amap3d地图,正常显示,但是在返回时会闪退,包括导航返回和按键返回。
解决方案
application 加上android:allowNativeHeapPointerTagging=“false”
在这里插入图片描述
在这里插入图片描述

xx2, 问题二描述

TextInput 输入框隐藏密码secureTextEntry在安卓上不生效
解决方案
设置keyboardType=‘default’ 即可

xx3, 问题三描述

Rn端和原生android、原生ios进行通信
(1)和android通信

 // 引入NativeModules模块
 import {NativeModules,DeviceEventEmitter} from 'react-native';
 // 监听安卓触发js事件 实现
 DeviceEventEmitter.addListener('refreshOrderTabNumber', (msg) => {
  // 回调里可获取传来的参数。msg
 });
 
 // rn触发原生安卓事件
 NativeModules.CD_AndroidToReactModule.unRegisterOrderTabReceiver()
 // 注: CD_AndroidToReactModule 为安卓里和rn通信类文件里的模块名称
 
 

在这里插入图片描述
参考链接
(2)和ios通信

import {NativeModules, NativeEventEmitter} from 'react-native';
// 注: NativeAndRNEventBrige 为ios 中的模块名
const NativeModulesByIOS = NativeModules.NativeAndRNEventBrige;
const NativeNotificationMoudule = new NativeEventEmitter(NativeModulesByIOS);
//监听 ios触发rn 方法
const subscription = NativeNotificationMoudule.addListener(
   'CustomEventName',
   () => {
     // 需要处理的逻辑;
   },
 );
 // rn 触发 ios方法
 NativeModules.NativeAndRNEventBrige.RNPushToLoginOut(String(infor.id));                  

参考链接:
React Native模块加载与原理分析
rn和原生通信

xx4 问题描述

ios友盟推送证书更换
步骤:
1,找到应用id

1找到应用id

2,找到推送设置

在这里插入图片描述

3,点击创建按钮

在这里插入图片描述
4,上传csr文件
在这里插入图片描述
5,创建完之后点击下载
在这里插入图片描述

6,下载完以后双击证书 安装。在钥匙串找到这个证书 并生成p12文件,上传到友盟即可

xx5 问题描述

KeyboardAvoidingView的使用注意
1, KeyboardAvoidingView的父元素最好是满屏大小,内部的跟元素也是满屏大小。
2,内部只包含一个输入框是很友好的 有多个的话,就不好用了

xx6 Text文本末尾被截断

部分机型text文本末尾被截断了。显示不全,原因是设置了fontWeight 的原因。可以设置fontFamily: ‘System’, 也可以在文本后面加一个空格

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐