问题描述
通过“测试应用链接” FB测试工具将其发送到我的应用后,我想获得延迟的深层链接。
我已经在Xcode项目设置中提供了AppID,并在AppDelegate文件中实现了fetchDeferredAppLick方法。以及在FB开发人员帐户和xcode项目info.plist文件中设置所有必要的应用程序设置。
但这在FB应用程序设置中仍然没有显示绿色复选标记。
当我通过单击“测试深层链接”将深层链接发送到应用程序时,在提示中收到“无法发送所选平台的深层链接通知”消息。
那么关于我已经实现fetchDeferredAppLink方法并提供AppID的事实,如何在应用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,sourceApplication: String?,annotation: Any) -> Bool {
ApplicationDelegate.shared.application(application,sourceApplication: sourceApplication,annotation: annotation)
return true
}
}
我的信息列表:
PS。我可以在模拟器上登录FB开发者帐户。并且fetchDeferredAppLink方法返回nil。
解决方法
您应该在FB App Advanced设置中指定添加帐户ID。
如果您有免费的开发者帐户,请从您的Xcode项目中删除推送通知。
然后,您应该在物理设备上安装Facebook应用并登录到您注册应用所使用的帐户。
插入设备。
通过FB测试工具发送延迟的深度链接(选中两个复选框)。
从Xcode在物理设备上运行您的应用程序。对于要启动的应用程序,您可以从手机的设置->常规->设备管理->开发人员应用程序->信任中显示对它的信任。
现在您的应用程序应该可以运行了,您应该获得延迟的深层链接,并且应该在第一张照片的第三个选项附近出现绿色的对勾。