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