本机 iOS Swift 应用程序中的 MobileFirst Platform Operational Analytics

Posted

技术标签:

【中文标题】本机 iOS Swift 应用程序中的 MobileFirst Platform Operational Analytics【英文标题】:MobileFirst Platform Operational Analytics in Native iOS Swift applications 【发布时间】:2015-12-02 15:51:14 【问题描述】:

我正在使用 XCode 7 (Swift) 和 MobileFirst 7.0 开发本机 ios MobileFirst 应用程序。

我想使用 MobileFirst Operational Analytics,并且遵循以下准则:

[https://developer.ibm.com/mobilefirstplatform/documentation/getting-started-7-0/moving-production/operational-analytics/][1]

我有一些问题:

应自动记录会话,但应用程序并非如此。当更多设备在过去 24 小时内连接时,我只看到 1 台设备的数据已连接。 如何启用此功能? 或者它应该是自动的,相当于原生 iOS 中的 WL.Connect()?

适配器调用也应该是自动的,但只能在选项卡下可视化:网络->适配器概述->适配器请求和网络->适配器概述->适配器请求,但我看不到饼图生成的图表:每个应用程序调用的调用、每个服务器的调用。它们仅显示为 http 请求。 如何也生成此图表?

我想做自定义图表并使用 WL.Analytics.log()、WL.Analytics.send() 等。如何将这些调用转换为 swift?我只在混合应用中看到这个,有没有关于这个的文档?

【问题讨论】:

【参考方案1】:

回答 1)

我意识到我没有成功连接到 MobileFirst 服务器。成功连接后,MobileFirst 操作分析工具会自动记录会话。代码是:

let connectListener = MyConnectListener()
WLClient.sharedInstance().wlConnectWithDelegate(connectListener)

回答 2)

以这种方式调用适配器时,Mobilefirst Operational Analytics 不会收集饼图的信息,而是将此调用注册为 http 调用:

let request = WLResourceRequest(URL: NSURL!, method: String!)

您必须像这样调用适配器,以便自动生成饼图:

let myInvocationData = WLProcedureInvocationData(adapterName: String!, procedureName: String!)  

回答 3)

在swift分析中使用以下代码成功发送到服务器。

let doAnaylitics = WLAnalytics.sharedInstance()
doAnaylitics.enable()
doAnaylitics.log("type", withMetadata:["location":location])
doAnaylitics.send()
doAnaylitics.disable();

【讨论】:

【参考方案2】:

回答 3)

我想做自定义图表并使用 WL.Analytics.log()、WL.Analytics.send() 等。如何将这些调用转换为 swift?我只在混合应用中看到这个,有没有关于这个的文档?

没有可用于 Swift 的 API,但您可以继续在 Swift 应用程序中使用 Objective-C 代码:How to call Objective-C code from Swift

另请参阅以下部分来配置您的 Swift 应用程序:https://developer.ibm.com/mobilefirstplatform/documentation/getting-started-7-1/foundation/hello-world/configuring-a-native-ios-application-with-the-mfp-sdk/#configSwiftApp

【讨论】:

以上是关于本机 iOS Swift 应用程序中的 MobileFirst Platform Operational Analytics的主要内容,如果未能解决你的问题,请参考以下文章

“无效的 Swift 支持”在 Xamarin.iOS 中使用本机 Swift 库

如何将iOS反应本机模板转换为swift?

GoogleWebRTC 在 swift 本机应用程序 (OpenVidu) 中挂起(冻结)主线程

如何将值传递给正在加载反应本机应用程序的 Web 视图

使用 swift 将导出的方法值作为未定义来反应本机本机模块?

如何在 KMM(kotlin 本机)共享模块中读取 Swift 框架库中生成的对象数组