如果有人单击动态链接,我想在选择器应用程序中显示我的应用程序,我的android清单文件应该是什么?URL前缀类似于-https://testapp.page.link. 在这个阶段,如果有人点击链接,它会首先打开浏览器,然后重定向到我的应用程序。但我想在选择器应用程序列表中显示我的应用程序。此时,我的清单文件如下-
<activity android:name=".extraActivities.DynamicLinkActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="test.com"
android:pathPattern="https://testapp.page.link*"
android:scheme="https"
/>
</intent-filter>
</activity>
我们需要在清单文件中使用写意图过滤器,如下所示-
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="testapp.com"
android:pathPattern=".*"
android:scheme="https" />
<data
android:host="testapp.page.link"
android:scheme="https"
android:pathPattern=".*"/>
</intent-filter>
其中“testapp.page.link”实际上是Firebase动态链接控制台左上角显示的URL前缀。“testapp.com”是任何链接的第一部分。如:https://testapp.com/user_profile?id=“Zsdsdjwenncsdmsd”。通过此链接,我们可以在动态链接的接收端提取用户Id“zSDSDDJWENNCSDMSD”。下面显示了一个完整的示例-
如果有人单击共享按钮,这将创建动态链接-
shareBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
shareProgressBar.setVisibility(View.VISIBLE);
Task<ShortDynamicLink> shortDynamicLinkTask = buildDeepLink(getString(R.string.grp_post_link)+postsModel.getPostId()+"&groupKey="+postsModel.getGroupKey()+"&groupName="+ dataSnapshot.getValue(String.class));
shortDynamicLinkTask.addOnCompleteListener(new OnCompleteListener<ShortDynamicLink>() {
@Override
public void onComplete(@NonNull Task<ShortDynamicLink> task) {
grpPostsViewHolder.shareProgressBar.setVisibility(View.GONE);
if(task.isSuccessful()){
Uri uri = task.getResult().getShortLink();
share(dataSnapshot.getValue(String.class), uri.toString());
}else {
Toast.makeText(context, "Can't create link", Toast.LENGTH_SHORT).show();
}
}
});
shortDynamicLinkTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
shareProgressBar.setVisibility(View.GONE);
}
});
动态链接创建者功能和共享功能-
/*-----------------------------------------------------------------------------*/
private Task<ShortDynamicLink> buildDeepLink(String deepLink) {
String uriPrefix = getString(R.string.dynamic_links_uri_prefix);
return FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLink(Uri.parse(deepLink))
.setDomainUriPrefix(uriPrefix)
.setNavigationInfoParameters(new DynamicLink.NavigationInfoParameters.Builder()
.build())
.setAndroidParameters(new DynamicLink.AndroidParameters.Builder()
.setMinimumVersion(3)
.build())
.buildShortDynamicLink();
}
/*-----------------------------------------------------------------------------*/
private void share(String name, String deepLink) {
String message = "Find "+name+" on SelfieLe - link: "+deepLink;
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, message);
startActivity(intent);
}
/*---------------------------------------------------------------------------------*/
字符串资源是-
string.grp_post_link和string.dynamic_links_uri_prefix:
<string name="user_profile_link">https://testapp.com/user_profile?id=</string>
<string name="dynamic_links_uri_prefix">https://testapp.page.link</string>
在接收端,我们可以提取postId, group pKey等,如下所示
FirebaseDynamicLinks.getInstance().getDynamicLink(getIntent()).addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
@Override
public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
if (pendingDynamicLinkData != null) {
deepLink = pendingDynamicLinkData.getLink();
}
if (deepLink != null) {
getGrpPost(deepLink.getQueryParameter("id"), deepLink.getQueryParameter("groupKey"), deepLink.getQueryParameter("groupName"));
}else {
Toast.makeText(DynamicLinkActivity.this, "Can't find link", Toast.LENGTH_SHORT).show();
}
}
}).addOnFailureListener(this, new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(DynamicLinkActivity.this, "Can't find link", Toast.LENGTH_SHORT).show();
}
});
getGroupPost();详情如下:
private void getGrpPost(String id, String groupKey, final String groupName) {
//Do what you want
}
有人试用过新的Firebase SDK for Unity吗(https://firebase.google.com/docs/unity/setup)? 当我尝试集成动态链接功能时,当有邀请时,它会使应用程序崩溃。 我创建了一个全新的项目与最低设置(https://firebase.google.com/docs/dynamic-links/unity)为Android添加动态链接到我的项目。当
我已经在我的设备上本地开发了一个android应用程序(应用程序还没有在android play商店上)。我有以下逻辑在主体活动中获得深度链接。 我用Firebase控制台建立了一些动态链接,并在手机浏览器中打开。但它不是打开我的应用程序并到达行字符串deepLink=appinvitereferral.getdeeplink(intent); 我在清单文件中有意图过滤器。
当我在手机浏览器中打开动态链接时,它并没有将我重定向到应用程序。相反,在手机浏览器中打开链接。 当用户尝试在手机浏览器中点击动态链接时,如何打开应用程序?
我遵循了Firebase动态链接文档中的所有步骤: 已将团队Id添加到firebase控制台 已添加自定义域 启用的关联域 已添加到信息URL方案 然而,当我点击动态链接时,它总是重定向到AppStore,而不是应用程序。我已经尝试了不间断的应用程序,重新启动手机和重新安装。如何让这个深度链接发挥作用? 附注:我的应用程序还没有发布到AppStore。
我有一个React Native应用程序与动态链接。安装应用时,动态链接将正确打开。但是当应用程序没有安装时,我想打开一个特定的网站,而不是AppStore预览页面。关于react-inal-Firebase文档,iOS上的"setFallbackUrl"方法应该处理这个问题。但它根本不起作用... 我使用的是react native firebase 5.2.1 以下是我创建动态链接的代码: 我
问题内容: 我有一个典型的Web应用程序,它由Selenium WebDriver自动化。我的问题是自动化的一个特殊情况,其中有一个链接,该链接运行带有Java Web Start的swing应用程序,并且我想将自动化的控制权转移到Swing应用程序。这可能吗?我可以使用什么工具来做到这一点?而且,我该怎么办?提前致谢。 问题答案: 点击webdriver中的jnlp文件链接,将jnlp文件保存到