更新记录

1.0.8(2021-11-09)

  • 修复1.0.6版本启动失败

1.0.6(2021-11-08)

  • 升级SDK至 6.4.2
  • android 增加getGaid接口
查看更多

平台兼容性

Android iOS
适用版本区间:5.0 - 11.0 适用版本区间:9 - 14

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


使用文档 (更多插件及问题,请加微信:zhuzheVIP1)

超级福利

使用

本插件提供 appsflyer 的集成。

AppsFlyer 入门指南

AppsFlyer Support

测试时,千万不要忘记添加测试设备

初始化

App.vue中添加
var appsFlyer = uni.requireNativePlugin("sn-appsflyer");
// 注册AppOpenAttribution,如果无法获取,请使用 plus.runtime.arguments或newintent事件,参考App.vue示例
appsFlyer.onAppOpenAttribution({}, (e) => {
  // e.code = 0 成功
  // e.data
});
// 注册DeelLink事件,如果无法获取,请使用 plus.runtime.arguments或newintent事件,参考App.vue示例
appsFlyer.registerDeepLink({}, (e) => {
  // e.code = 0 成功
  // e.data
});
// 初始化
appsFlyer.initSdk(
  {
    devKey: "K2***********99",
    isDebug: false,
    appId: "41*****44", // 苹果app store appid
    timeToWaitForATTUserAuthorization: 10, //for iOS 14.5
    // 以下是非必填项
    onInstallConversionDataListener: true, //是否监听安装转化数据,开启之后,数据回调则通过initSdk回调传递
    onDeepLinkListener: true, // 是否监听DeepLink,开启之后,数据回调则通过registerDeepLink回调传递
    collectAndroidID: false, // 是否收集androidID
    collectIMEI: false, // 是否收集IMEI
  },
  (result) => {
    // result.code = 0 表示成功
    // result.msg
    console.log(result);
  }
);

App.vue 示例

<script>
export default {
  onLaunch: function () {
    console.log("App Launch");
    plus.globalEvent.addEventListener("newintent", (e) => {
      var args = plus.runtime.arguments;
      if (args) {
        // 处理args参数,如直达到某新页面等
        console.log("onLaunch-newintent", args);
      }
    });
    // #ifdef APP-PLUS
    const appsFlyer = uni.requireNativePlugin("sn-appsflyer");
    appsFlyer.onAppOpenAttribution({}, (e) => {
      console.log("AppsFlyer onAppOpenAttribution", e);
    });
    appsFlyer.registerDeepLink({}, (e) => {
      console.log("AppsFlyer deepLink", e);
    });
    appsFlyer.initSdk(
      {
        devKey: "b7vH36Qtpud6Y5BSokEKg9",
        isDebug: false,
      },
      (e) => {
        console.log("AppsFlyer initSdk", e);
      }
    );
    // #endif
  },
  : function () {
    console.log("App Show");
    setTimeout(function () {
      var args = plus.runtime.arguments;
      if (args) {
        // 处理args参数,如直达到某新页面等
        console.log("", args);
      }
    }, 10);
  },
  onHide: function () {
    console.log("App Hide");
  },
};
</script>

<style></style>

统计事件

var appsFlyer = uni.requireNativePlugin("sn-appsflyer");
// 统计事件
appsFlyer.logEvent(
  {
    eventName: "", // 事件名
    eventValues: {}, // 事件数据
  },
  (e) => {}
);

设置自定义userId

appsFlyer.setCustomerUserId('111', e => {
  if (e.code == 0) {
    // success
  }
});

获取appsflyer_id

appsFlyer.getAppsFlyerUID(e => {
  if (e.code == 0) {
   // e.uid
  }
});

获取gaid

// 获取 gaid
appsFlyer.getGaid((e) => {
  if (e.code == 0) {
    // e.gaid;
  }
});

常见问题

  • 如何支持 Android App Link ?

    由于HBuilderX还不支持,请联系作者,进行配置

  • oaid 是否支持?

    插件是google play版本,oaid版本请联系作者

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件使用的 AppsFlyer SDK会采集数据,详情可参考:https://www.appsflyer.com/cn/

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问