(舊版) 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
方法已簡化,而且只需要requestorID。
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方法取代為handleExternalURL方法 replace
過去曾使用getAuthentication
方法完成驗證流程。 由於名稱有誤導性,因此已將它重新命名為handleExternalURL
,並將URL視為引數。
變更下列專案的所有具體值:
accessEnabler.getAuthenticationToken()
變更為這個:
accessEnabler.handleExternalURL(request.url?.description);
API資訊在此: 處理外部URL