【发布时间】:2020-12-24 17:55:33
【问题描述】:
我想在通过“Test App Link”FB 测试工具将其发送到我的应用后获得延迟的深层链接。
我在 Xcode 项目设置中提供了 AppID,并在 AppDelegate 文件中实现了 fetchDeferredAppLick 方法。以及我在 FB 开发帐户和 xcode 项目 info.plist 文件中设置所有必要的应用程序设置。
但它仍然没有在 FB 应用设置中显示绿色复选标记。
当我通过单击“测试深层链接”将深层链接发送到应用程序时,提示中出现“无法为所选平台发送深层链接通知”消息。
那么,关于我已经实现 fetchDeferredAppLink 方法并提供 AppID 的事实,我如何才能在 app fb 设置中获得绿色复选标记?
应用设置:
我的 AppDelegate 代码:
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
AppEvents.activateApp()
ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
AppLinkUtility.fetchDeferredAppLink { (url, error) in
if let error = error {
print("Received error while fetching deferred app link: \(error)")
} else if let url = url {
print("Deeplink is \(url)")
// should open cautch deeplink here
if #available(iOS 10, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(url)
}
} else { // url is nil
print("\nNo app link available\n")
}
}
// MARK: - OneSignal
let onesignalInitSettings = [kOSSettingsKeyAutoPrompt: false]
// add OneSignal app id
OneSignal.initWithLaunchOptions(launchOptions, appId: "", handleNotificationAction: nil, settings: onesignalInitSettings)
OneSignal.inFocusDisplayType = OSNotificationDisplayType.notification;
// to show the iOS push notification prompt
OneSignal.promptForPushNotifications(userResponse: { accepted in
print("User accepted notifications: \(accepted)")
})
return true
}
// MARK: - Track App Installs and App Opens
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
ApplicationDelegate.shared.application(app, open: url, sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String, annotation: options[UIApplication.OpenURLOptionsKey.annotation])
return true
}
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
ApplicationDelegate.shared.application(application, open: url, sourceApplication: sourceApplication, annotation: annotation)
return true
}
}
我的 info.plist:
PS。我可以在模拟器上登录 FB dev 帐户。并且 fetchDeferredAppLink 方法返回 nil。
【问题讨论】:
标签: ios swift facebook facebook-graph-api deep-linking