1

我正在开发一个离子应用程序,我们需要使用深度链接,我正在使用 appsflyer。我通过传递 devKey 和 appID 来调用下面提到的方法

    // initialize appsflyer
initAppsflyer() {

    var onSuccess = function (result) {
        //handle result
        console.log('Appsflyer onSuccess ' + result);

    };

    var onError = function (err) {
        // handle error
        console.log('Appsflyer onError ' + err);
    }
    var options = {
        devKey: '',
        appId: '',
        isDebug: true,
        onInstallConversionDataListener: true
    };
    window.plugins.appsFlyer.initSdk(options, onSuccess, onError);
}

当我单击深层链接时,它会打开应用程序并且数据加载正常。但是当我单击另一个链接时,它会显示先前单击的链接的数据。有人在使用 apssflyer onelink 时遇到过这个问题吗?如果是这样,如何解决这个问题?

4

2 回答 2

1

您注意到的是 onInstallConversionDataListener 仅用于返回安装归因数据,除非用户卸载并重新安装应用程序,否则此数据不会更改。

要获取随每个新的深度链接 URL 更新的深度链接数据,请参阅我们的 onAppOpenAttribution 方法,该方法旨在返回最近触发应用打开的链接的深度链接详细信息:https: //support.appsflyer.com/hc/en -us/articles/208874366-Deep-Linking-Step-by-Step#the-onappopenattribution-method-

如果您还有其他问题,请联系 support@appsflyer.com,我们很乐意为您提供帮助。

最佳,Joe Williams AppsFlyer 美国支持工程师

于 2018-07-17T00:32:26.100 回答
1

新版本 (4.4.9) 发布,支持附加回调onAppOpenAttributionhttps ://github.com/AppsFlyerSDK/cordova-plugin-appsflyer-sdk#registerOnAppOpenAttribution

你也可以发现这个例子(Ionic3)很有帮助

platform.ready().then(() => {

  // init AppsFlyer
  const options = new AppsFlyerInitOptions();
  options.devKey = AppsFlyerConstants.DEV_KEY;
  options.isDebug = true; // Optional
  options.onInstallConversionDataListener = true;

  if (platform.is('ios')){
    options.appId = AppsFlyerConstants.APP_ID;
  }

  try {
    const onSuccess: Function = (res: any) => {
      // do something with  JSON.parse(res)
    };
    const onError: Function = (err: any) => {
      //..
    };

    const onAppOpenAttributionSuccess: Function = (res: any) => {
      // do something with  JSON.parse(res)
    };
    const onAppOpenAttributionError: Function = (err: any) => {
      //..
    };

    window.plugins.appsFlyer.registerOnAppOpenAttribution(onAppOpenAttributionSuccess, onAppOpenAttributionError);

    window.plugins.appsFlyer.initSdk(options, onSuccess, onError);
  }
  catch (e) {
    console.error("ERROR: AppsFlyer not initiated", e);
  }

 //...
});
于 2018-07-17T12:52:43.823 回答