集成PlotProjects React Native模块后始终无法正常启用
React Native集成PlotProjects模块运行异常问题
问题背景
通过npm仓库的plotprojects-react-native-module为React Native应用接入PlotProjects能力,参照3.13.0版本官方集成指南、官方GitHub示例代码完成全量配置后,模块始终无法正常加载运行。
已完成的配置项
- 配置文件部署:分别在iOS路径
ios/Supporting Files/、Android路径android/app/src/main/assets/目录下放置plotconfig.json配置文件,publicToken等核心配置项已按要求填写,文件内容为:
{ "publicToken": "MY TOKEN", "enableOnFirstRun": true, "maxRegionsMonitored": 20, "automaticallyAskLocationPermission": true, "automaticallyAskNotificationPermission": true }
- 初始化逻辑封装:编写
src/utils/plot.js工具文件,逻辑为调用Expo相关API申请位置、通知权限,待权限全部授予后调用Plot.initialize()完成模块初始化,核心实现代码为:
import Constants from 'expo-constants'; import * as Location from 'expo-location'; import * as Notifications from 'expo-notifications'; import { NativeModules } from 'react-native'; const Plot = NativeModules.PlotProjectsReactModule; export const initializePlot = async () => { try { if (!Constants.isDevice) return; const { status: locationStatus } = await Location.requestPermissionsAsync(); const { status: notificationStatus } = await Notifications.requestPermissionsAsync(); console.log({ locationStatus, notificationStatus }); if (locationStatus === 'granted' && notificationStatus === 'granted') { console.log('initializing...'); Plot.initialize(); console.log('initialized!'); } else { console.log('Location permission denied'); } } catch (err) { console.warn(err); } }; export default Plot;
- 应用入口调用:在
App.js中导入初始化方法并执行,代码为:
import { initializePlot } from './src/utils/plot'; initializePlot();
异常表现
- 日志确认
Plot.initialize()方法已被成功触发调用 - 调用
Plot.isEnabled(enabled => console.log({ enabled }))查询模块运行状态时,回调返回的enabled值始终为false,等待30秒后重新查询结果仍无变化 - 按照官方设计逻辑,模块初始化完成后会在Plot管理控制台为新设备生成对应设备档案,但实际控制台未接收到任何设备上报数据
- 基于现有配置逐一排查仍无法定位问题根因,模块无法正常运行
内容的提问来源于stack exchange,提问作者Oliver
相关产品推荐
相关产品推荐

