【问题标题】:iOS - Test getting Facebook deferred deep linkiOS - 测试获取 Facebook 延迟深层链接
【发布时间】: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


    【解决方案1】:

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

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

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

    插入您的设备。

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-07-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-15
      • 2020-11-10
      • 1970-01-01
      • 2014-11-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多