在设置了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
。我找不到任何其他部分提到文档中对通用链接的不同处理。
打开应用程序时,必须正确配置通用链接。如何从这里开始?
答案 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);