更新记录
1.0.1(2026-09-17) 下载此版本
- 支持
petrealm://pages/index/index?code=XXXX这类 deep link,结果里单独给deeplink/deeplinkParams.code - 新增
rememberLaunchUrl,可把plus.runtime.arguments交给插件解析 - Play referrer 与本次唤起 URL 同时存在时不再互相覆盖
平台兼容性
uni-app(4.27)
| Vue2 | Vue3 | Vue3插件版本 | Chrome | Safari | app-vue | app-nvue | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | √ | 1.0.1 | - | - | - | - | 5.0 | 1.0.1 | 13 | 1.0.1 | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
fz-install-referrer
1.0.1
读取 App 安装 / 打开时的来源。Android 走 Play Install Referrer,两端都解析 Deep Link。插件自己不上报,字段名也不写死,source / code / utm_source 宿主自己取。
拷到 uni_modules 即可。UTS 必须打自定义基座或正式包。
环境
| 项 | 要求 |
|---|---|
| HBuilderX | 4.27+ |
| 工程 | uni-app Vue3 |
| Android | minSdk 21,依赖 com.android.installreferrer:installreferrer:2.2(插件已带) |
| iOS | 13.0+ |
Android 权限 BIND_GET_INSTALL_REFERRER_SERVICE 由插件合并。iOS 无额外权限。Scheme / Universal Link 在宿主 manifest 里自己配。
"android": {
"schemes": "yourapp"
}
iOS urltypes 同样填 yourapp。
接入
- 复制
uni_modules/fz-install-referrer到工程。 - 制作自定义调试基座。
- 在
App.vue的onShow里调用。冷启动参数不要等到内页再读。
import { getInstallAttribution, rememberLaunchUrl } from '@/uni_modules/fz-install-referrer'
export default {
async onShow() {
// #ifdef APP-PLUS
const args = plus.runtime.arguments
if (args) rememberLaunchUrl(args)
const attr = await getInstallAttribution()
const source = attr.deeplinkParams.source || attr.params.source || attr.params.utm_source || ''
console.log(attr, source)
// #endif
}
}
channel === 'none' 是正常结果,不要当失败弹 Toast。跳页继续用 plus.runtime.arguments,插件不管路由。
API
rememberLaunchUrl(url: string): void
getInstallAttribution(): Promise<InstallAttribution>
rememberLaunchUrl 用来接 plus.runtime.arguments。必须带 ://,空串和 { / [ 开头的 Intent JSON 会丢掉。部分机型自定义 scheme 只出现在 arguments 里,不传可能解析不到。
getInstallAttribution 返回:
| 字段 | 说明 |
|---|---|
platform |
android / ios / web |
channel |
play_referrer / deeplink / none |
raw |
主通道原文 |
params |
从 raw 拆出的 query |
deeplink |
本次唤起 URL,没有就是 '' |
deeplinkParams |
从 deeplink 拆出的 query |
clickTimestampMs |
Play 点击时间,其它为 0 |
installTimestampMs |
Play 开始安装时间,其它为 0 |
Android 有 Play referrer 时 channel 为 play_referrer,deeplink 仍单独保留。没有 referrer 但有启动 URL 则为 deeplink。Play 连不上或超时不抛错,回退 Deep Link 或 none。H5 返回 platform: 'web', channel: 'none'。
query
按 ?a=1&b=2 拆,叫什么都可以:
yourapp://pages/index/index?source=XXXX
→ deeplinkParams.source === 'XXXX'
Play 商店链接自己带 referrer:
https://play.google.com/store/apps/details?id=包名&referrer=source%3DXXXX
平台
| Android | iOS | |
|---|---|---|
| 未安装去商店再打开 | 链接带 referrer= 能读到 |
读不到商店来源 |
| 已安装被链接打开 | Intent + arguments |
Scheme / Universal Link / arguments |
| HBuilderX / 侧载 | 一般是空,或 organic | 无商店 referrer |
测试
自定义基座 + 真机。
Deep Link:配置 scheme 后打开 yourapp://pages/index/index?source=TEST123,deeplinkParams.source 应为 TEST123。
Play Referrer:必须从 Google Play 安装,链接带 referrer=,卸载后再用该链接装。HBuilderX 直接安装读不到。
FAQ
uts 插件编译失败,无法使用
没打进当前基座。改过插件要重新制作自定义基座。
基座里 referrer 是空的
只有带 referrer 的商店安装才会写入。侧载、覆盖安装经常是空的,或 utm_source=google-play&utm_medium=organic。
iOS 为什么没有商店来源
系统不会把 App Store 活动参数传给装完后的 App。已安装用 Deep Link。
每次 onShow 都会拿到旧的 Play referrer
插件不做去重。是否只报一次由宿主自己用 storage 控制。

收藏人数:
下载插件并导入HBuilderX
赞赏(0)
下载 11
赞赏 0
下载 12614124
赞赏 1949
赞赏
京公网安备:11010802035340号