繁体   English   中英

iOS - 测试获取 Facebook 延迟深层链接

[英]iOS - Test getting Facebook deferred deep link

我想在通过“Test App Link”FB 测试工具将其发送到我的应用程序后获得延迟的深层链接。

我在 Xcode 项目设置中提供了 AppID,并在 AppDelegate 文件中实现了 fetchDeferredAppLick 方法。 以及我在 FB 开发帐户和 xcode 项目 info.plist 文件中设置了所有必要的应用程序设置。
但它仍然没有在 FB 应用程序设置中向我显示绿色复选标记。

当我通过单击“测试深层链接”向应用程序发送深层链接时,在提示中收到“无法为所选平台发送深层链接通知”消息。

那么如何在应用程序 fb 设置中获得关于我已经实现 fetchDeferredAppLink 方法并提供 AppID 的事实的绿色复选标记?

应用程序设置:

我的 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
    } 
}

我的信息.plist:

附注。 我可以在模拟器上登录 FB dev 帐户。 fetchDeferredAppLink 方法返回 nil。

您应该在 FB App Advanced 设置中指定添加帐户 ID。

如果您有免费的开发者帐户 - 从您的 Xcode 项目中删除推送通知。

然后在您的物理设备上,您应该安装 Facebook 应用程序并登录到您注册应用程序的帐户。

插入您的设备。

通过 FB 测试工具发送延迟的深层链接(标记两个复选框)。

在您的物理设备上从 Xcode 运行您的应用程序。 对于要启动的应用程序,您可以通过手机设置 -> 常规 -> 设备管理 -> 开发者应用程序 -> 信任来显示信任。

现在您的应用程序应该可以运行了,您应该会看到延迟的深层链接,并且应该会出现第一张照片上第三个选项附近的绿色复选标记。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM