MapboxMobileEvents 1.0.10

MapboxMobileEvents 1.0.10

测试已测试
语言语言 Obj-CObjective C
许可证 NOASSERTION
发布最后发布2022年11月

Mapbox维护。



  • Mapbox

🎟Mapbox移动事件

Bitrise codecov

Mapbox移动事件SDK收集有关地图和设备位置的匿名数据,以不断更新和改进您的地图。

📦客户端框架

🏎快速开始

如果您使用的是其他Mapbox SDK,则无需进行任何特殊设置即可使用Mapbox移动事件。

如果您将Mapbox移动事件集成到不使用其他Mapbox SDK的应用程序中,您需要在您的应用程序中包含MapboxMobileEvents.framework,并在应用程序代理的…didFinishLaunching…方法中添加

MMEEventsManager *manager = [MMEventsManager.sharedManager 
    initializeWithAccessToken:@"your-mapbox-token" 
    userAgentBase:@"user-agent-string"
    hostSDKVersion:@"1.0.0"];
[manager sendTurnstileEvent];

或者,在Swift中

let eventsManager = MMEEventsManager.sharedManager().initialize(
    withAccessToken: "your-mapbox-token", 
    userAgentBase: "user-agent-string", 
    hostSDKVersion: "1.0.0")
eventsManager.sendTurnstileEvent()

🎟发送事件

创建和发送事件的首选API是使用私有方法-MMEEventManager pushEvent:,如果您认为您的应用程序需要发送事件,请联系您的技术客户经理或在此存储库中提交详细的问题。

💣调试

通常,在模拟器上运行Mobile事件SDK时不会发送事件或发出调试信息,您可以通过设置应用程序的Info.plist中的键来启用这些功能

MMEDebugLogging: YES
MMECollectionEnabledInSimulator: YES

🗺前台和后台位置收集

MapboxMobileEvents框架收集位置数据以帮助改进地图。我们力求保持低功耗和网络使用率,并非常注意根据我们的隐私策略匿名所有数据。

在移动设备上使用Mapbox SDKs和API受我们
服务条款的管理,这些条款要求您的应用不得干扰或限制Mapbox SDK发送给我们的数据,无论是通过修改SDK还是通过其他方式。如果您需要不同的条款,请联系Mapbox销售

iOS 13中的后台位置

如果您的应用程序启用了后台位置功能,MapboxMobileEvents框架会通过一种被动的方式在后台收集遥测数据,以实现极低的能耗。如果您的应用程序没有使用后台位置功能,请确保在Info.plist中移除相应的权限键:NSLocationAlwaysAndWhenInUseUsageDescriptionNSLocationAlwaysUsageDescription以及UIBackgroundMode中的location

⚠️错误和异常处理与报告

MapboxMobileEvents框架努力将所有内部异常和错误控制在框架内部,以防止错误对使用该框架的应用程序最终用户直接造成影响。框架将尝试将它们以修改过的形式报告给我们后端,由Mapbox进行分析。

嵌入了MapboxMobileEvents.framework的应用程序和框架,可以在设置MMEEVentsManager.sharedManager.delegate之后实现MMEEventsManagerDelegate方法

- (void)eventsManager:(MMEEventsManager *)eventsManager 
    didEncounterError:(NSError *)error;

以便告知框架遇到的任何NSErrorNSException。异常会被包含在一个带有错误代码MMEErrorExceptionNSError中进行报告,而异常则包括在用户信息字典中,键为MMEErrorUnderlyingExceptionKey

如果框架希望通过移动事件API报告错误,MMEEventsManager提供了两个方便的方法

NSError *reportableError = nil;
// make a call with an **error paramater
[MMEEventsManager.sharedManager reportError:reportableError];

@try {
    // do something dangerous
}
@catch (NSException *exceptional) {
    [MMEEventsManager.sharedManager reportException:exceptional];
}

🧪测试

一些遗留的测试用例是用Cedar编写的。要在Xcode中运行测试,使用Command-U键,您需要将位于Carthage/Build/iOS/中的框架解压运行这些测试。