winguSDK-iOS 0.6.8

winguSDK-iOS 0.6.8

测试已测试
语言语言 Obj-CObjective C
许可证 Apache-2.0
发布最后发布2018年5月
SwiftSwift版本3.0

Jakub Mazur维护。



 
依赖项
RSBarcodes_Swift>= 0
AudioPlayer>= 0
Nuke>= 0
SwiftyMarkdown>= 0
youtube-ios-player-helper>= 0
SKPhotoBrowser>= 0
 

winguSDK-iOS

winguSDK是wingu.de服务的iOS SDK。此框架将允许连接到附近用户位置的信标和地理围栏。它使用Swift 3.0编写。

Version License Platform

Wingu

示例

要运行示例项目,先克隆仓库,然后从Example目录运行pod install

安装

winguSDK-iOS通过CocoaPods提供。要安装它,只需将以下行添加到Podfile中:

pod "winguSDK-iOS"

要求

SDK 的主要目标是响应周围事件。wingu SDK 使用 CoreLocation 与信标和地理围栏一起工作。您需要请求用户权限以使用其位置,并且必须将其设置为 始终。将此密钥添加到您的 .plist 文件中

NSLocationAlwaysUsageDescription

请提供您希望如何使用用户位置的说明

用法

声明您的键

调用方法

 _ = WinguComposition("[YOUR_API_KEY]", false)

第二个参数是用于测试环境,它将很快被删除。请将其保持为 false

调用此方法的推荐方式是在您的 AppDelegate 中的 application:didFinishLaunchingWithOptions

检测频道

为了与附近的地点连接,需要响应该协议 WinguLocationsDelegate。它有一个必需的方法,该方法将返回一个描述附近信标或地理围栏的 Channel 对象。

要开始搜索信标和地理围栏,请在该类中创建变量

 var winguLocations: WinguLocations!

并且当您准备好搜索时,请初始化此对象

 winguLocations = WinguLocations.sharedInstance
 winguLocations.delegate = self
 winguLocations.startBeaconsRanging()

Channel 是顶级对象,可以描述信标或地理围栏。它可以扩展。

为了在您的代码中检索搜索到的频道,请添加以下内容

extension ViewController: WinguLocationsDelegate {
    func winguRangedChannels(_ channels: [Channel]) {
        //do whatever you want with channel objects
    }
}

导航到仪表板

每当您得到一个频道并想要进行到 Deck,您需要传递一个参数。我们推荐使用 UIStoryboardsStoryboard Reference 来执行此操作,在那里您唯一需要做的是将 Storyboard 设置为 WinguDeckStoryboard,将 Bundle 设置为 de.wingu.sdk。然后在 prepareForSegue: 方法中,您需要像这样设置 contentchannelId

 deckVC.content = channel?.content!
 deckVC.channelId = channel?.uID

其中 deckVCWinguDeckViewController

如果您不想使用 Storyboards,只需从 WinguDeckStoryboard 获取 WinguDeckViewController 并按您想要的声明转换。

注释

这将自动启动所有分析。建议您这样使用。每次您只想使用视图时,您负责 whenever you stop displaying Deck 启动和结束分析。

自定义 DeckView

您可以使用 DeckComposition 结构完全自定义您的 deck。您可以将其应用于 DeckViewWinguDeckViewController。默认设置为

DeckComposition(.defaultComposition)

例如,要更改 ActionComponent 上按钮的背景颜色,您需要做类似以下操作

        var myComposition = DeckComposition(.defaultComposition)
        myComposition.couponComponent.fontColor = UIColor.blue
        (winguDectVC as? WinguDeckViewController).composition = myComposition

背景活动

winguSDK 可自动从前台切换到后台活动。您只需要在您的 AppDelegate 中声明更改状态。然后,应用将从测距信标切换到监控,反之亦然。

extension AppDelegate {
    func applicationWillResignActive(_ application: UIApplication) {
        WinguLocations.applicationState(.willResignActive)
    }
    
    func applicationDidEnterBackground(_ application: UIApplication) {
        WinguLocations.applicationState(.didEnterBackground)
    }
    
    func applicationWillEnterForeground(_ application: UIApplication) {
        WinguLocations.applicationState(.willEnterForeground)
    }
    
    func applicationDidBecomeActive(_ application: UIApplication) {
        WinguLocations.applicationState(.didBecomeActive)
    }
    
    func applicationWillTerminate(_ application: UIApplication) {
        WinguLocations.applicationState(.willTerminate)
    }
}

使用代理卡

要使用代理卡,请确保您的 deck 是代理 deck。为此,请使用

channel?.payloadProxy()

其中 payloadProxy() 是一个返回您的有效载荷 id 作为 StringChannel 对象 func

注意

请记住,为了进行此集成,还需要创建 WinguInteractions 对象以收集分析数据。为此,请使用

 self.interactions = self.channel?.startInteractionsMonitoring()

其中 self.interactions 被声明为

 var interactions: WinguInteractions?

要停止交互,请调用

    self.channel?.stopInteractionsMonitoring(self.interactions!)

分析数据将本地保存,要发送它,请检查分析部分

分析

当您从SDK使用ViewControllers时,会自动收集分析数据,但您需要手动发送,发送分析数据请将这些代码放在您的application:didFinishLaunchingWithOptions方法中

 Analytics.sendAnalyticsData(nil)

通知

要允许通知,只需调用该方法

        LocalNotificationManager.setupLocalNotificationManager()
        

然后按以下方式处理它

    func application(_ application: UIApplication, handleActionWithIdentifier identifier: String?, for notification: UILocalNotification, completionHandler: @escaping () -> Void) {
        LocalNotificationManager.handleLocalNotificationAction(identifier!)
    }
    
    func application(_ application: UIApplication, didReceive notification: UILocalNotification) {
        LocalNotificationManager.redirectFromLocalNotificationToChannelDetail(notification, DeckComposition(.defaultComposition))
    }

作者

iOS开发者 @ wingu AG

Jakub

Mateusz

许可

winguSDK-iOS遵循Apache 2.0许可。有关更多信息,请参阅LICENSE文件。