您好,我是Firebase动态链接的新手,自己学习它,我一直在按照this教程进行学习。
我的代码创建方法是:
private void createLink() {
String link = "https://play.google.com/store/apps/details?id=com.test.app&referrer="+"test1234" ;
FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLink(Uri.parse(link))
.setDynamicLinkDomain("testxyz.page.link")
.setAndroidParameters(
new DynamicLink.AndroidParameters.Builder("com.test.app")
.setMinimumVersion(125)
.build())
.buildShortDynamicLink().addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e("xyz", "error:::" + e.toString());
}
})
.addOnSuccessListener(new OnSuccessListener<ShortDynamicLink>() {
@Override
public void onSuccess(ShortDynamicLink shortDynamicLink) {
Log.e("xyz", "link:::" + shortDynamicLink.getShortLink());
}
});
}
它给我的网址是: https://testxyz.page.link/RhSKMYMnE2YHLbZk6 我将其复制并粘贴到浏览器中,并且工作正常,将我带到Play商店,并显示了我要打开的所需应用,并带有以下链接,其中包含应用ID: com.test.app >
我要做的测试是从安装了应用程序ID为 com.test.app 的应用程序的Android手机中单击该URL,应使用我单击的URL来打开它!
我在我的应用程序中收到ID为 com.test.app 的链接,其方法为:
private void check(){
FirebaseDynamicLinks.getInstance()
.getDynamicLink(getIntent())
.addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
@Override
public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
// Get deep link from result (may be null if no link is found)
Uri deepLink = null;
if (pendingDynamicLinkData != null) {
deepLink = pendingDynamicLinkData.getLink();
Log.e("deeplink","link:::"+deepLink);
Toast.makeText(IndexActivity.this, "link:::"+deepLink, Toast.LENGTH_SHORT).show();
}else{
Log.e("deeplink","link is null:::");
Toast.makeText(IndexActivity.this, "link is null:::", Toast.LENGTH_SHORT).show();
}
//
// If the user isn't signed in and the pending Dynamic Link is
// an invitation, sign in the user anonymously, and record the
// referrer's UID.
//
}
});
}
此方法被放置在我的Splash活动之后的主要活动中!
清单有:
<activity
android:name=".MainActivity"
android:screenOrientation="portrait">
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data
android:host="https://testxyz.page.link"
android:scheme="http"/>
<data
android:host="https://testxyz.page.link"
android:scheme="https"/>
</intent-filter>
</activity>
问题: 当我单击Firebase生成的动态链接时,它可以工作,并带我到浏览器并使用所需的应用程序打开Google Play商店。
我想要打开的应用程序并获取引荐来源网址的动态链接信息!
我做错了,因为我是Firebase Deep Linking的新手,所以我不知道。
实际上,我想创建一个链接,我可以使用我的用户名将其发送给其他用户,如果用户单击该链接,则会打开该应用程序(如果已安装),如果未安装,则将用户带到应用程序商店安装该应用程序,获取引荐来源网址
的深层链接信息非常感谢任何帮助或教程,在此先感谢您!
答案 0 :(得分:0)
将您的android参数设置为遵循.setAndroidParameters(
new DynamicLink.AndroidParameters.Builder(BuildConfig.APPLICATION_ID)
.setMinimumVersion(1)
.build())
您的动态链接无法打开您的应用,因为您没有在android参数中定义包。
答案 1 :(得分:0)
我的解决方案与代码无关,必须更改默认浏览器。谷歌浏览器正在劫持我的动态链接。我现在使用的是勇敢的浏览器,它将直接打开我的应用程序。