Taro 获取手机DeviceInfo,IMEI

    在终端中进入taro项目的根目录下,执行npm install react-native-device-info,然后执行react-native link react-native-device-info,同样,在终端中进入taro壳子(taro-native-shell)的根目录下执行npm install react-native-device-info和react-native link react-native-device-info。再通过相同的步骤添加react-native-imei包。

    然后在项目终端下执行npm run dev:rn,等执行完成,再打开一个新的终端,进入到taro壳子(taro-native-shell)的根目录下执行react-native run-android,发现终端报错


这个问题,终端中已经给出了解决方法,在taro壳子taro-native-shell/android/app/src/main/AndroidManifest.xml文件中的application标签下添加以下代码

android:appComponentFactory="android.support.v4.app.CoreComponentFactory"

tools:replace="android:appComponentFactory"

继续在壳子中执行react-native run-android,终端继续报错

通过终端的报错可以得知又是AndroidX适配的问题,也就是引入的react-native-imei和react-native-device-info两个包中有做了AndroidX适配的。找到壳子中的node-modules文件下的react-native-device-info包,找到CHANGELOG.md文件

搜索androidx

为了保险起见,需要更改版本到2.1.1,然后在终端中执行npm install [email protected];react-native link react-native-device-info。再执行运行的命令,终端报错

依然是Android x适配问题,找到taro-native-shell/react-native-device-info包下的build.gradle文件,引用的第三方包如下:

这几个依赖包中,应该是com.google.android.gms:play-services-gcm的问题(为啥这么认为呢,底下的三个依赖包懂Android的应该都知道是没有适配Android X的,而第一个依赖包,其他的包或者taro下的Android 中也引用了,没有报过Android x适配的问题)。

把引用的版本号修改成15.0.1

implementation"com.google.android.gms:play-services-gcm:15.0.1"

重新运行,不再报错,可在taro中使用DeviceInfo类的方法了

通过测试验证,ios手机可以通过该插件获取到deviceinfo。

你可能感兴趣的:(Taro 获取手机DeviceInfo,IMEI)