我正在尝试在 React Native 中使用 PubNub 来实现实时位置跟踪,但由于我引用的代码已经有 4 年历史了,PubNubReact 已经不存在了。我不知道如何使用当前可用的版本。我为此使用了 React Native 地图和 google 地图 api。
以下是参考代码:
import React from 'react';
import { StyleSheet, View, Platform, Dimensions, SafeAreaView } from 'react-native';
import MapView, {Marker, AnimatedRegion} from 'react-native-maps';
import PubNubReact from 'pubnub-react'
const { width, height } = Dimensions.get("window");
const ASPECT_RATIO = width / height;
const LATITUDE = 37.78825;
const LONGITUDE = -122.4324;
const LATITUDE_DELTA = 0.0922;
const LONGITUDE_DELTA = LATITUDE_DELTA * ASPECT_RATIO;
export default class App extends React.Component{
constructor(props){
super(props);
this.state = {
latitude: LATITUDE,
longitude: LONGITUDE,
coordinate: new AnimatedRegion({
latitude: LATITUDE,
longitude: LONGITUDE,
latitudeDelta: 0,
longitudeDelta: 0
})
}
this.pubnub = new PubNubReact({
publishKey: "pubKey",
subscribeKey: "subKey",
});
this.pubnub.init(this);
}
...
来自 PubNub DevRel 团队的 Oliver。我们的 React Native SDK 一段时间前已被弃用,但我建议在您的移动应用程序中使用我们的 React SDK。它本质上是我们的 JavaScript SDK 的包装器,用于在您的应用程序中使用 JS 代码。
将 PubNub JavaScript SDK 和 React 框架包添加到项目后
cd <project folder name here>
npm install --save pubnub pubnub-react
您需要包含 PubNub 库并使用 uuid(或唯一用户标识符)配置 PubNub 对象。那么你应该可以走了!
import PubNub from 'pubnub';
import { PubNubProvider, usePubNub } from 'pubnub-react';
...
const pubnub = new PubNub({
publishKey: 'myPublishKey',
subscribeKey: 'mySubscribeKey',
uuid: 'myUniqueUUID'
});
...
考虑到这些调整,请遵循一些示例代码,不仅初始化一些示例代码,还了解如何添加事件侦听器以捕获 PubNub 平台上的事件。