Appsflyer Universal Links iOS无法路由到请求的页面

时间:2018-01-19 13:57:45

标签: cordova ios-universal-links appsflyer

在设置了appsflyer cordova插件以及启用iOS的通用链接(遵循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。然后,我们将一个带有深层链接的onelink发布到我们应用中的特定页面(带有查询参数,例如af_dp=<custom_scheme>://some/specific/route

在Android上,正常的深层链接可以正常工作,例如我们会调用handleOpenUrl,然后调用appsflyer.handleOpenUrl,然后我们继续将应用程序路由到深层链接中请求的页面。

然而,在iOS上,它会在安装时打开我们的应用程序,但永远不会调用handleOpenUrl。我找不到任何其他部分提到文档中对通用链接的不同处理。

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

1 个答案:

答案 0 :(得分:1)

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);