iOS如何识别App打开的来自

描绘于头里

在数码统计方面范畴看App打开来源非常关键,特别是对于分享同付费引流的权效果及独具特别主要的打算。

iOS App最常用之开拓途径来三栽:

  1. 信(本地、远程)推送打开
  2. scheme跳反打开
  3. UniversalLinks打开

哪些区分

App启动后表明在App底层已经准备齐全的地方即产生得据此来分别的标志,也不怕是当AppDelegate中之application:didFinishLaunchingWithOptions:

if (launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey]) {
    NSLog(@"远程推送打开");
} else if (launchOptions[UIApplicationLaunchOptionsLocalNotificationKey]) {
    NSLog(@"本地推送打开");
} else if (launchOptions[UIApplicationLaunchOptionsUserActivityDictionaryKey]) {
    NSLog(@"UniversalLinks打开");
} else if (launchOptions[UIApplicationLaunchOptionsURLKey]) {
    NSLog(@"Scheme跳转打开");
} else if (!launchOptions) {
    NSLog(@"手动点击打开");
}

更多说有些

launchOptions除了用来区分App的开发方式,还承载着打开时之一对数,比如scheme跳转、UniversalLinks打开的下的一些具体链接,之前运用之bundleID等数便宜追述。

例如UniversalLinks中,我们尽管得经如下方法取得链接,而未自然要当交专用的Delegate方法返回给咱们

NSUserActivity *act = [[launchOptions objectForKey:UIApplicationLaunchOptionsUserActivityDictionaryKey] objectForKey:@"UIApplicationLaunchOptionsUserActivityKey"];
NSString *url = [act.webpageURL absoluteString];

外枚举的含义

  • UIApplicationLaunchOptionsURLKey
    于scheme跳反打开的时起,用于取scheme地址之key;如”enalibaba://home”

  • UIApplicationLaunchOptionsSourceApplicationKey
    自任何App跳转打开的时候出现
    值为一个字符串表示来源App的BundleID;如:”com.apple.mobilesafari”
    表示于Safari跳转

  • UIApplicationLaunchOptionsRemoteNotificationKey
    于远程推送打开,这个key对应之价值是一个Dictionary,里面就是推送的Payload

  • UIApplicationLaunchOptionsLocalNotificationKey
    自打本土推送打开,这个key对应的价值是一个Dictionary,里面就是推送的Payload

  • UIApplicationLaunchOptionsAnnotationKey
    这Key应该无会见重复睹了,它只能通过
    application:openURL:sourceApplication:annotation:
    打开App的时节才见面出现,但这个法都于记为 Deprecated
    从9.0随后不再支持。

  • UIApplicationLaunchOptionsLocationKey
    依据地理位置点的App打开,官方文档应该更新了了,已经摸索不顶原文,大意是要App开启了地理位置,在App退出及后台之后,如果点了地理位置打开App,那么LaunchOptions就会见发生是Key,可用来开启地理位置事件监听的表明,但这种地理位置点打开App的力量急需App
    Store审核才会拉开下。

  • UIApplicationLaunchOptionsNewsstandDownloadsKey
    关于杂志更新的,用到极致少,不多描述

  • UIApplicationLaunchOptionsBluetoothCentralsKey
    蓝牙服务提供设备唤醒App时起的Key,数据为数组,代表设备列表

  • UIApplicationLaunchOptionsBluetoothPeripheralsKey
    蓝牙被劳动设备唤醒App时出现的Key,数据为数组,代表设备列表

  • UIApplicationLaunchOptionsShortcutItemKey
    由3D Touch打开App时起这个Key

  • UIApplicationLaunchOptionsUserActivityDictionaryKey
    UniversalLinks打开时起是Key,用于取持续打开行为的片段多少必发bifa88手机客服端,通常是点击的链接

  • UIApplicationLaunchOptionsUserActivityTypeKey
    UniversalLinks打开时出现是Key,值吗NSUserActivityTypeBrowsingWeb,而且是枚举值就这为

  • UIApplicationLaunchOptionsCloudKitShareMetadataKey
    A key indicating that the app received a CloudKit share invitation.
    相关文档比较少,推测是起文本里大快朵颐给App打开时会见起这Key。

参考
https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623073-application?language=objc
http://nshipster.cn/launch-options/
http://www.jianshu.com/p/2ab2716c334e
http://www.jianshu.com/p/6a1eb76ec776

相关文章