接入指南
快手开放平台SDK
介绍
快手开发平台SDK提供了第三方app跳转到快手终端进行交互的能力,其中包括快手登陆授权,分享私信、视频、图片到快手,跳转指定用户个人主页等功能。
接入指南
1.配置您应用的UniversalLinks
由于苹果iOS 13系统版本安全升级,为此openSDK在3.0.0版本进行了适配。 3.0.0版本支持Universal Links方式跳转,对openSDK分享进行合法性校验。
(1)根据 苹果文档 配置你应用的Universal Links:
快手对Universal Links要求:必须支持HTTPS,配置的paths不能带query参数,App配置的paths必须加上通配符/*,
并且配置到快手的Universal Links需要以"/"结尾,便于快手SDK拼接参数能够正常完成跳转。
示例:
{
"appID": "8P7343TG54.com.kuaishou.game.SDKSample",
"paths": ["/sdksample/*"]
}
2)打开Associated Domains开关,将Universal Links域名加到配置上
3)验证您的Universal Links是否生效
Safari输入Universal Links(包括完整路径)+随机字符串(例如: abc)
举例:
配置到快手的Universal Links如下
https://kuaishou.com/sdksample/
测试输入Safari的Universal Links:
https://kuaishou.com/sdksample/abc
检查下拉页面检查是否有打开app的入口提示
2.向快手注册您的应用id和Universal Links
详见https://docs.qq.com/doc/DRndDUmJldkNNQWNa
申请成功后,得到 AppId 和 AppSecret, 客户端接入只需要 AppId , 服务器同时需要 AppId 和 AppSecret。
3.搭建开发环境
3.1静态库集成
(1)通过cocoapods集成
pod 'KwaiSDK' ,'3.6.2'
(2)手动集成
1.在 XCode 中建立你的工程。
2.将 SDK 文件中 KwaiSDK.framework 文件添加到你所建的工程中。
3.开发者需要在工程中链接上:WebKit.framework。
4.在你的工程文件中选择 Build Setting,在"Other Linker Flags"中加入"-ObjC -all_load"。
3.2设置scheme
在 Xcode 中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序 id(如下图所示)。
在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在 “info”标签栏的“LSApplicationQueriesSchemes“添加 kwai kwaiAuth2 kwaiopenapi KwaiBundleToken kwai.clip.multi KwaiSDKMediaV2 ksnebula
在实际开发中,需要把示例例中的 ks685673047210945076 替换成⾃己的 appId
3.3 在代码中使用开发工具包
1.要使你的程序启动后快手终端能响应你的程序,必须在代码中向快手终端注册你的 id。(如下图所示,在 AppDelegate 的 didFinishLaunchingWithOptions 函数中向快手注册 id)。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//向快手注册
[KSApi registerApp:APP_ID universalLink:UNIVERSAL_LINK delegate:YOUR_DELEGATE];
return YES;
}
2.重写 AppDelegate 的 handleOpenURL 和 openURL 方法:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [KSApi handleOpenURL:url];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [KSApi handleOpenURL:url];
}
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options {
return [KSApi handleOpenURL:url];
}
3.重写AppDelegate或SceneDelegate的continueUserActivity方法。
注意:适配了SceneDelegate的App,系统将会回调SceneDelegate的continueUserActivity方法,所以需要重写SceneDelegate的该方法。
AppDelegate:
- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
return [KSApi handleOpenUniversalLink:userActivity];
}
SceneDelegate:
- (void)scene:(UIScene *)scene continueUserActivity:(NSUserActivity *)userActivity {
return [KSApi handleOpenUniversalLink:userActivity];
}