快捷方式 0.2.0

Shortcut 0.2.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新版本发布时间2016年4月

Herbert BaySeverin Schoepke 维护。



Shortcut 0.2.0

适用于 iOS 的 Shortcut

此 SDK 提供以下功能:

  • 收集统计信息(应用程序使用、深链接)。
  • 支持 延迟深链接
  • 创建快捷连接(短移动深链接),以便在您的应用内部进行共享。

此 SDK 还有 Android 版本

要求

此 SDK 与所有运行 iOS6 及以上版本设备的设备兼容。

安装

您可以使用 CocoaPods 或将其作为 .framework 文件集成到您的应用程序中来安装此 SDK。

集成 .framework 文件
  1. 发布页面 下载最新 SDK 的 zip 文件。
  2. 解压它,并将 Shortcut.framework 文件添加到您的项目中,例如通过将其拖放到 Xcode 项目导航器中的项目。
  3. 在您的项目的 构建阶段 中,确保在 链接二进制库 部分添加了 Shortcut.framework。如果您在那里找不到它,从项目导航器将其拖放到列表中。

先决条件

为了使用此 SDK,您需要以下内容:

  • 一个 API 密钥。使用 Shortcut Manager 创建一个关联 API 密钥的移动应用程序。

要使用深链接功能,还需要以下内容:

集成到您的应用程序中

一般设置

确保在所有使用 SDK 的文件中导入我们的 SDK

#import <Shortcut/Shortcut.h>

使用Shortcut Manager创建一个带有相关API键的移动应用。然后,通过在您的AppDelegate.m文件中的-application:didFinishLaunchingWithOptions:中添加以下内容来使用API键的认证令牌启动SDK:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    [Shortcut launchWithAuthToken:@"YOUR_AUTH_TOKEN_HERE"];

    // ...
    return YES;
}

收集深链接交互统计信息

要收集深链接交互统计信息,您需要在深链接打开时通知SDK:SDK通过会话跟踪用户查看深链接内容。每次打开一个深链接时,您都必须创建一个会话;当用户离开您的应用程序时,SDK将自动终止该会话。

使用自定义URL方案时

将以下内容添加到-application:openURL:sourceApplication:annotation:(您在实现应用程序自定义方案深链接处理时已将其添加到应用程序代理中):

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {

    SCSession *deepLinkSession = [Shortcut startDeepLinkSessionWithURL:url];
    url = deepLinkSession.url; // Use the session object's url property for further processing

    // ...
}
使用通用链接时

将以下内容添加到-application:continueUserActivity:restorationHandler:(您在实现应用程序通用链接处理时已将其添加到应用程序代理中):

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler {

    if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
        self.deepLinkSession = [Shortcut startDeepLinkSessionWithURL:userActivity.webpageURL];
        userActivity.webpageURL = self.deepLinkSession.url; // Use the session object's url property for further processing
    }

    // ...
}

创建快捷方式(简短移动深链接)

快捷方式允许您立即生成短链接,无需(可能是缓慢的)后端往返操作。其工作方式如下:

  1. SDK生成一个唯一的短链接并将其立即返回给您:
  2. 生成的短链接以及所有参数(网站URL、标题、深链接)将在后台发送到快捷方式后端:

这样您就可以立即获得一个链接,将其显示在分享选项卡中或通过电子邮件发送出去,无需等待后端。

重要提示:您必须确保在调用此方法时网络连接可用!

示例:假设您有一个分享按钮,它应弹出一个操作表单,允许您通过短链接在您的应用程序中分享某些内容。

实现可能如下所示:

- (IBAction)shareButtonPressed:(id)button {

    NSURL *shortLinkURL = [Shortcut createShortLinkWithTitle:@"content title"
                                                  websiteURL:[NSURL URLWithString:@"http://your.site/content"]
                                                    deepLink:[NSURL URLWithString:@"your-app://your/content"]];
    [self displayShareSheetWithURL:shortLinkURL];
}

- (void)displayShareSheetWithURL:(NSURL *)urlToShare {
    // ...
}
替代方案:异步创建

还有创建新短链接的异步方式。其工作方式如下:

  1. SDK将短链接的参数发送到后端:
  2. 后端生成一个新的短链接并将其返回给SDK:
  3. SDK通过完成处理程序通知您新短链接:

这样您需要等待后端生成短链接,但如果发生任何错误(例如,没有网络连接),则可以对其进行响应。

上述示例的实现方式可以通过异步调用如下所示:

 - (IBAction)shareButtonPressed:(id)button {

    [Shortcut createShortLinkWithTitle:@"content title"
                            websiteURL:[NSURL URLWithString:@"http://your.site/content"]
                              deepLink:[NSURL URLWithString:@"your-app://your/content"]
                     completionHandler:^(NSURL *shortLinkURL, NSError *error) {
                         if (!error) {
                             [self displayShareSheetWithURL:shortLinkURL];
                         } else {
                             // do error handling...
                         }}];
}

- (void)displayShareSheetWithURL:(NSURL *)urlToShare {
    // ...
}
每个平台不同的深链接

如果您支持的不同平台(iOS、Android、Windows Phone)上的深链接不相同,则可以在每个平台上指定它们,只需使用 [Shortcut createShortLinkWithTitle:websiteURL:iOSDeepLink:AndroidDeepLink:WindowsPhoneDeepLink:][Shortcut createShortLinkWithTitle:websiteURL:iOSDeepLink:AndroidDeepLink:WindowsPhoneDeepLink:completionHandler:] 即可。

短链接的自定义域名

如果您在快捷方式管理器中设置了自定义域名以便为您的短链接使用,并且想要同时将SDK创建的短链接也用于该域名,则您需要告诉SDK这一信息。这通过使用自定义域名参数启动SDK来实现。只需将您的AppDelegate.m文件中的-application:didFinishLaunchingWithOptions:中的SDK启动调用进行替换即可

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    [Shortcut launchWithAuthToken:@"YOUR_AUTH_TOKEN_HERE" shortLinkDomain:@"YOUR_DOMAIN_HERE"]; // instead of: [Shortcut launchWithAuthToken:@"YOUR_AUTH_TOKEN_HERE"];

    // ...
    return YES;
}

从Shortcut Deep Linking SDK迁移

Shortcut Deep Linking SDK已被弃用,其功能已集成到本SDK/Shortcut for iOS中。

请按照以下步骤迁移您的代码以使用此新SDK

  1. 在Xcode项目中删除ShortcutDeepLinkingSDK.framework
  2. 按照安装先决条件部分中的步骤将新框架添加到您的应用中。
  3. 将所有出现的#import <ShortcutDeepLinkingSDK/ShortcutDeepLinkingSDK.h>替换为#import <Shortcut/Shortcut.h>
  4. 此SDK使用Shortcut类上的类方法来进行所有交互,而不是使用SCDeepLinking类的单例实例的方法。因此,您必须替换代码中所有以下对SDK的调用
    • [[SCDeepLinking sharedInstance] launch]替换为[Shortcut launchWithAuthToken:]
    • [[SCDeepLinking sharedInstance] startSessionWithURL:]替换为[Shortcut startDeepLinkSessionWithURL:]
    • [[SCDeepLinking sharedInstance] createShortLinkWithTitle:websiteURL:deepLinkURL:completionHandler:]替换为[Shortcut createShortLinkWithTitle:websiteURL:deepLink:completionHandler:]
  5. 可选:如果需要,使用新SDK提供的即时短链接生成。查看上面的创建快捷方式部分,并将对[Shortcut createShortLinkWithTitle:websiteURL:deepLink:completionHandler:]的调用替换为[Shortcut createShortLinkWithTitle:websiteURL:deepLink:]

许可证

本项目遵循MIT许可证发布。有关详细信息,请参阅包含的LICENSE.txt文件。