我是本地 iOS 开发人员,第一次尝试离子反应编程。我正在做 POC 来跟踪 ios 设备的位置,而应用程序在后台。但两天以来我一直在努力实现这一目标。有人可以帮我做到吗?
根据 ionic React 文档,我们需要使用
@capacitor/geolocation
来实现位置跟踪功能。我阅读了文档,发现watchPosition(options: PositionOptions, callback: WatchPositionCallback) => Promise<CallbackID>
此方法可用于跟踪设备的实时位置。
请参考以下代码
我用来获得用户许可来跟踪工作正常的位置的代码。
const requestPermission = async () => {
try {
const result = await Geolocation.requestPermissions();
if (result.location === 'granted') {
console.log('Permission granted');
} else {
// Handle denied permission
}
} catch (error) {
console.error('Error requesting location permission:', error);
}
}
我用来在后台跟踪用户位置的代码
const startBackgroundTracking = async () => {
console.log('startBackgroundTracking');
const watchId = Geolocation.watchPosition(
{
enableHighAccuracy: true,
timeout: 10000,
maximumAge: 5000,
// Other options...
},
(position: Position | null, error: any) => {
console.log('(position: Position | null, error: any) =>', position, error)
if (position) {
console.log('Background position:', position.coords.latitude, position.coords.longitude);
// Send location updates to server or perform desired actions
} else if (error) {
console.error('Error watching position:', error);
}
}
);
请注意,用户设备的实时跟踪性能良好,当应用程序进入后台状态时,我面临实时跟踪问题。
我还在 Xcode 项目的 Info.plist 中添加了所需的键 -
如有任何帮助,我们将不胜感激!预先感谢。