7 android ios react-native deviceid
如何在本机中获取设备ID.我正在使用create react native而不是android studio.我是新来的.
import DeviceInfo from 'react-native-device-info';
constructor(props) {
super(props);
this.state = { id: '' }
this.onNavigateTo = this.onNavigateTo.bind(this);
}
componentDidMount() {
this.setState({id: DeviceInfo.getUniqueID()}, () =>
alert(this.state.id));
}
render() {
return (
<Text>{this.state.id}</Text>
);
}
Run Code Online (Sandbox Code Playgroud)
错误:undefined不是对象(评估'RNDevice.uniqueId')
注意: - 我没有使用run-android或run-ios
我正在使用Create-react-native app和yarn start.输出将通过Expo应用程序在设备上
小智 11
您可以使用react-native CLI创建项目,而不是世博会.
使用命令创建一个新项目:
react-native init Myproject
cd Myproject
Run Code Online (Sandbox Code Playgroud)
使用以下命令运行项目:
react-native run-android
Run Code Online (Sandbox Code Playgroud)
然后你可以使用react-native-device-info包.
我试过以下版本,它对我有用.
"react": "16.0.0",
"react-native": "0.50.4",
"react-native-device-info": "^0.12.1",
Run Code Online (Sandbox Code Playgroud)
我用命令安装它:
npm install --save react-native-device-info
Run Code Online (Sandbox Code Playgroud)
然后我用命令链接它:
react-native link react-native-device-info
Run Code Online (Sandbox Code Playgroud)
如果您在链接包时遇到任何问题,那么您可以进行手动链接,也可以交叉检查包是否成功链接.
Run Code Online (Sandbox Code Playgroud)dependencies { ... compile "com.facebook.react:react-native:+" // From node_modules + compile project(':react-native-device-info') }
...
包括':app'
包括':react-native-device-info'
project(':react-native-device-info').projectDir = new File(rootProject.projectDir,'../node_modules/replace-term-device-info/android')
Run Code Online (Sandbox Code Playgroud)+ import com.learnium.RNDeviceInfo.RNDeviceInfo; public class MainApplication extends Application implements ReactApplication { //...... @Override protected List<ReactPackage> getPackages() { return Arrays.<ReactPackage>asList( + new RNDeviceInfo(), new MainReactPackage() ); } ...... }
权限
为AndroidManifest.xml添加适当的可选权限:
...
<uses-permission android:name="android.permission.BLUETOOTH"/> <!-- for Device Name -->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> <!-- for Phone Number -->
Run Code Online (Sandbox Code Playgroud)
例
var DeviceInfo = require('react-native-device-info');
// or import DeviceInfo from 'react-native-device-info';
var deviceId = DeviceInfo.getUniqueID();
Run Code Online (Sandbox Code Playgroud)
你可以使用上面的deviceId.
如果您正在使用 Expo,请尝试此操作。
import Constants from 'expo-constants';
this.clientId = Constants.deviceId;
Run Code Online (Sandbox Code Playgroud)
你不能使用使用本机代码库世博会看到警告,如果你想使用本地代码,你需要在入门创建具有本机代码项目文档基本
react-native init MyProjectNamecd MyProjectNamereact-native run-android或react-native run-ios如果您想将expo项目转换为本机代码项目,您可以执行eject-from-create-react-native-app
npm run eject之后,您可以使用使用本机代码并运行的第三方库 react-native link
| 归档时间: |
|
| 查看次数: |
16925 次 |
| 最近记录: |