如何在本机反应中获取设备令牌
Posted
技术标签:
【中文标题】如何在本机反应中获取设备令牌【英文标题】:How to get the device token in react native 【发布时间】:2017-11-09 05:29:26 【问题描述】:我正在使用 react-native 0.49.3 版本,我的问题是如何在 ios 和 android 的 react native 中获取设备令牌我尝试使用此 link 但它不适用于我,现在我尝试了IOS。怎么解决 谁能告诉我怎么配置?
【问题讨论】:
使用此链接获取设备ID github.com/rebeccahughes/react-native-device-info 嗨 @KapilYadav 你分享的链接仅适用于设备 ID,不适用于设备令牌 【参考方案1】:我尝试了不同的解决方案,我决定使用React Native Firebase。
Here你会发现关于通知的一切。
此外,您还可以使用 Firebase 附带的其他库,例如 Analytics 和崩溃报告
设置库后,您可以执行以下操作:
// utils/firebase.js
import RNFirebase from 'react-native-firebase';
const configurationOptions =
debug: true,
promptOnMissingPlayServices: true
const firebase = RNFirebase.initializeApp(configurationOptions)
export default firebase
// App.js
import React, Component from 'react';
import Platform, View, AsyncStorage from 'react-native';
// I am using Device info
import DeviceInfo from 'react-native-device-info';
import firebase from './utils/firebase';
class App extends Component
componentDidMount = () =>
var language = DeviceInfo.getDeviceLocale();
firebase.messaging().getToken().then((token) =>
this._onChangeToken(token, language)
);
firebase.messaging().onTokenRefresh((token) =>
this._onChangeToken(token, language)
);
_onChangeToken = (token, language) =>
var data =
'device_token': token,
'device_type': Platform.OS,
'device_language': language
;
this._loadDeviceInfo(data).done();
_loadDeviceInfo = async (deviceData) =>
// load the data in 'local storage'.
// this value will be used by login and register components.
var value = JSON.stringify(deviceData);
try
await AsyncStorage.setItem(config.DEVICE_STORAGE_KEY, value);
catch (error)
console.log(error);
;
render()
...
然后您可以使用令牌和您需要的所有信息调用服务器。
【讨论】:
感谢您的回复@Marcos Schroh 我已解决问题 我正在经历同样的情况,但我正在使用 react-native-fcm 进行 firebase 推送通知。有没有办法从 react-native-fcm 包中获取设备令牌? 你可以看看here这是一个例子怎么做(FCM.getFCMToken()) 此方法获取 FCM 设备令牌,但不获取 APNs 令牌。 APNs 令牌对于故障排除很有用。 token 在 firebase.messaging.getToken().then() 方法中为空,仅在 IOS 上适用于 android!有人告诉我是什么问题..以上是关于如何在本机反应中获取设备令牌的主要内容,如果未能解决你的问题,请参考以下文章
如何在反应本机中使用 XMLHttpRequest 在 GET 方法的标头中传递授权令牌