Appsflyer 通用链接 iOS 未路由到请求的页面

Appsflyer Universal Links iOS not routing to requested page

按照 appsflyer cordova 插件的设置以及为 iOS 启用通用 links(遵循 Appsflyer 文档)不会导致实际将用户定向到我们应用程序中的特定页面.

版本:

cordova 7.1.0
cordova-android 6.4.0
cordova-ios 4.5.3
cordova-plugin-appsflyer-sdk 4.3.0
iOS: 10.3.3

Xcode 项目的关联域设置为 applinks:<_onelink_id>.onelink.me。然后,我们将一个 link 深度 link 发布到我们应用程序的特定页面中(使用查询参数,例如 af_dp=<custom_scheme>://some/specific/route

在 Android,正常的 deeplinks 工作。例如:handleOpenUrl被调用,然后我们调用appsflyer.handleOpenUrl然后我们继续路由到应用程序到deeplink中请求的页面。

但是,在 iOS 上,它会在安装时打开我们的应用程序,但从未调用 handleOpenUrl。我在文档中找不到提及通用 links 的不同处理的任何其他部分。

打开应用程序时,必须正确配置通用 links。如何从这里开始?

iOS 有一个单独的方法来处理通用链接(通常,在 AppsFlyers Cordova 插件中也是如此):

- (BOOL) application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *_Nullable))restorationHandler
{
    [[AppsFlyerTracker sharedTracker] continueUserActivity:userActivity restorationHandler:restorationHandler];
    return YES;
}

这里是AppsFlyer的Cordova插件中的相关代码:https://github.com/AppsFlyerSDK/cordova-plugin-appsflyer-sdk/blob/master/src/ios/AppsFlyerPlugin.m#L420

在AppsFlyer的Cordova插件中,如果onInstallConversionDataListener数据设置为true,initSdk的成功回调应该返回预期的数据,例如:

var onSuccess = function(result) {
     alert(result); 
     // will return success for init, and also ConversionData and onAppOpenAttribution Data 
};

function onError(err) {
    // handle error
}

var options = {
               devKey:  'd3Ac9qPardVYZxfWmCspwL',
               appId: '123456789',
               onInstallConversionDataListener: true
             };

window.plugins.appsFlyer.initSdk(options, onSuccess, onError);