我试图在React Native中使用PubNub来实现实时位置跟踪,但由于我提到的代码已经4年了,因此PubNubReact已经不在那里了.我不知道如何使用当前可用的版本.为此,我使用了react-native map 和谷歌 map 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);
  }
 ...

推荐答案

Oliver来自PubNub DevRel团队.我们的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'
    });
...

考虑到这些调整,请遵循大约example code条,不仅初始化一些示例代码,还了解如何添加事件监听器以在PubNub平台上捕获事件.

React-native相关问答推荐

Redux toolkit通过按钮操作进行查询

什么是 expoClientId?

React Native 组件中两次使用map的问题

元素类型无效:应为字符串

为什么当键盘出现在react native 时我的按钮会上升?按钮视图位置是绝对的?

如何在 react-navigation v6 中更改标题高度

如何在 react-native 中使用 Animated 制作 svg 动画

从 .apk 到 .aab 的本地构建版本react,如何将应用程序发送给客户端?

Google SignIn SDK 因抛出错误而失败,发生不可恢复的登录失败 -catch 错误

React中类似于 React Native 中的 FlatList

使用直接在 Windows 中运行的模拟器在 WSL 中运行 React Native

使用 Bearer身份验证令牌react native图像

如何在 React-Native 的alert中设置alert框标题?

使用来自另一个页面的 fetch 调用函数返回结果值

在 OPTIONS 响应后使 fetch API 与 CORS 一起工作

由于对 sourcetree 的 husky 预推送,Git 推送失败

React Native <>(空)组件到底是什么

如何构建一个 react-native 应用程序,以便它在 ipad 上作为 ipad 应用程序运行?

保存时 Visual Studio 代码格式化失败

/bin/sh: adb: 找不到命令