(旧版) iOS/tvOS v3.x迁移指南 iostvos-v3x-migration-guide
- 从iOS sdk版本3.1开始,实施人员现在可以交替使用WKWebView或UIWebView。 由于UIWebView已被弃用,应用程序应迁移到WKWebView,以避免未来的iOS版本出现问题。
- 请注意,迁移仅意味着使用WKWebView切换UIWebView类,对于Adobe的AccessEnabler,没有具体工作要做。
更新内部版本设置 update
此版本包含用SWIFT语言编写的功能。 如果您的应用程序完全是Objective-C,则需要将target构建设置中的“始终嵌入Swift标准库”复选框设置为“是”。 设置此选项后,Xcode会扫描应用程序中的捆绑框架,如果其中任何包含Swift代码,则会将相关库复制到应用程序的捆绑包中。 如果不更新生成设置,应用程序可能会崩溃,并出现错误,指出它无法加载AccessEnabler.framework或各种ibswift*库。
添加软件声明 add
有关如何获取软件声明的信息,请转到此
页面:
应用程序注册
一旦您拥有了软件语句,我们建议将它托管在远程服务器上,这样您就可以轻松地撤销或更改它,而不用在App Store中部署应用程序的新版本。 应用程序启动时,请从远程位置获取软件语句,并将其传递到AccessEnabler构造函数:
accessEnabler = AccessEnabler("YOUR_SOFTWARE_STATEMENT_HERE");
此处的API信息:iOS / tvOS API参考
添加自定义URL方案 add-custom
有关如何获取自定义URL方案的信息,请访问此页面: 获取客户URL方案
获取自定义URL方案后,您需要将其添加到应用程序的info.plist文件中。 自定义方案的格式为: adbe.u-XFXJeTSDuJiIQs0HVRAg://。 将冒号和正斜线添加到文件时需要省略。 上述示例将变为adbe.u-XFXJeTSDuJiIQs0HVRAg。
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>CUSTOM_URL_SCHEME_HERE</string>
</array>
</dict>
</array>
截获对自定义URL方案的调用 intercept
这仅适用于应用程序之前通过setOptions(["handleSVC":true"])调用启用了手动Safari视图控制器(SVC)处理的情况,以及需要Safari视图控制器(SVC)的特定MVPD,因此需要由SFSafariViewController而不是UIWebView/WKWebView控制器加载身份验证和注销终结点的URL的情况。
在身份验证和注销流期间,应用程序必须监控SFSafariViewController 控制器的活动,因为它经过多次重定向。 您的应用程序必须检测其加载application's custom URL scheme定义的特定自定义URL的时刻(例如adbe.u-XFXJeTSDuJiIQs0HVRAg://adobe.com))。 当控制器加载此特定自定义URL时,应用程序必须关闭SFSafariViewController并调用AccessEnabler的handleExternalURL:url API方法。
在您的AppDelegate中添加以下方法:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey: Any]) -> Bool {
if (url.absoluteString.hasPrefix("adbe.")) {
accessEnabler.handleExternalURL(url.description)
return true;
}
}
此处的API信息:处理外部URL
更新setRequestor方法签名 update-setreq
由于新的SDK使用新的身份验证机制,因此不需要signedRequestId参数或公钥和密钥(对于tvOS)。 setRequestor方法已简化,它只需要请求者ID。
iOS
此代码:
accessEnabler.setRequestor(requestorId, setSignedRequestorId: signedRequestorId)
变为:
accessEnabler.setRequestor(requestorId)
tvOS
此代码:
accessEnabler.setRequestor(requestorId, setSignedRequestorId: signedRequestorId,
secret: "secret", publicKey: "public_key")
变为:
accessEnabler.setRequestor(requestorId)
此处的API信息:设置请求者
将getAuthenticationToken方法替换为句柄ExternalURL方法 replace
过去使用getAuthentication方法完成身份验证流程。 由于名称有误导性,因此将其重命名为handleExternalURL,并将URL作为参数。
更改以下内容的所有实例:
accessEnabler.getAuthenticationToken()
更改为以下内容:
accessEnabler.handleExternalURL(request.url?.description);
此处的API信息:处理外部URL