我想知道是否有办法使用 firebase 或 appsFLyer 等或本机知道用户是否来自深度链接并安装了我的应用程序有没有办法知道深度链接?
基本上,我希望在用户从 Play 商店安装应用程序后将意图传递给我(假设用户从 deepLink 或某个引用链接进入 Play 商店)。
让我们想象一下,用户没有我的汽车应用程序,但看到了我发布的关于汽车的广告。然后他点击该广告并被引导安装我的应用程序。安装我的应用程序后,我希望用户看到他们最初在广告中看到的汽车。
我想知道是否有办法使用 firebase 或 appsFLyer 等或本机知道用户是否来自深度链接并安装了我的应用程序有没有办法知道深度链接?
基本上,我希望在用户从 Play 商店安装应用程序后将意图传递给我(假设用户从 deepLink 或某个引用链接进入 Play 商店)。
让我们想象一下,用户没有我的汽车应用程序,但看到了我发布的关于汽车的广告。然后他点击该广告并被引导安装我的应用程序。安装我的应用程序后,我希望用户看到他们最初在广告中看到的汽车。
那篇文章中描述了很好的例子
您必须创建特定的BroadcastReceiver
添加Manifest
:
<receiver android:name="your.package.InstallListener" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
并创建BroadcastReceiver
将捕获深度链接的类
public class InstallListener extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String rawReferrerString = intent.getStringExtra("referrer");
if (rawReferrerString != null) {
Log.i("MyApp", "Received the following intent " + rawReferrerString);
}
}
}
referrer
并使用 js 向 url添加参数,如下所示:
var fallbackFunction = function() {
window.location.replace('market://details?id=io.branch.testbed&referrer=specialparam');
};
var addIFrame = function() {
var iframe = document.createElement("iframe");
iframe.style.border = "none";
iframe.style.width = "1px";
iframe.style.height = "1px";
iframe.src = 'your_uri_scheme://';
document.body.appendChild(iframe);
};
addIFrame();
setTimeout(fallbackFunction, 250);
顺便说一句,如果该方法不起作用,您可以尝试在 js 中获取手机的特定参数(如vendor、model等)并将其保存在 firebase 等云数据库中。然后在用户安装应用程序(PACKAGE_INSTALLED
BroadcastReceiver
或只是第一次启动)之后,您可以检查数据库以获取他的特定参数的最后数据并获取他的深度链接。如果您没有太多的用户,那将足够正常工作。