0

按照 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

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

在 Android 上,正常的深层链接有效。例如:handleOpenUrl被调用,然后我们调用appsflyer.handleOpenUrl,然后我们继续将应用程序路由到深度链接中请求的页面。

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

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

4

1 回答 1

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 插件中,预期的数据应该在成功回调中返回initSdk,前提是 onInstallConversionDataListener 数据设置为 true,例如:

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);
于 2018-01-21T15:28:41.140 回答