我手动创建了动态链接,并在链接上设置了一些额外的参数,如下所示:https://XXXXX.goo.gl/? link = http%%3A%2F%2Fairbanq.send.com%2Fsendmoney&apn=com.xxxx. XXXX&AMV = 1&用户名= Adri&量= 7.00
但是当应用程序打开时,我得到:"https:// airbanq.send.com/sendmoney"没有附加参数
我正在使用此示例代码 https://github.com/firebase/quickstart-android/tree/master/dynamiclinks
请帮忙,
谢谢
我的代码
public String buildDeepLink() {
// Get the unique appcode for this app.
String appCode = AirBanqApp.mContext.getString(R.string.app_code);
// Get this app's package name.
String packageName = AirBanqApp.mContext.getPackageName();
// Build the link with all required parameters
Uri.Builder builder = new Uri.Builder()
.scheme("https")
.authority(appCode + ".app.goo.gl")
.path("/")
.appendQueryParameter("link", deepLink)
.appendQueryParameter("apn", packageName);
// If the deep link is used in an advertisement, this value must …Run Code Online (Sandbox Code Playgroud) 我已经在我的应用程序中以编程方式创建了一些Firebase动态链接,这些链接在长ULR时工作正常,我的意思是,Firebase创建的默认动态链接.如果用户未安装该应用,则会打开Play商店,安装应用后会打开深层链接.另一方面,如果用户安装了应用程序,则会直接打开深层链接.
好吧,在那之后,我试图创建一个简短版本的动态链接,因为URL很长,看起来并不"漂亮",也隐藏了链接中出现的一些信息.
首先,我使用Google URL缩短器API进行了此操作,因为那时Firebase没有任何服务以编程方式执行此操作.在这里,您可以找到有关如何使用Google Shortener API创建简短版本的答案.在Firebase发布他们的服务后我也使用了.
好吧,问题是缩短链接创建得很好,直到我发现如果它被自定义选项卡打开,就像在电报中一样,深层链接将无效.无论用户是否安装了应用程序,它始终会将应用程序的Play商店页面直接打开到自定义选项卡中,如果用户安装了应用程序,则不会启动深层链接.当然,如果不是自定义选项卡,它可以正常工作.
您可以检查创建的动态链接(在Android设备上查看,否则链接将无法打开播放商店或应用,因为默认URL尚不可用):https://v73j2.app.goo.gl/ gol2WmqeFwgrUapH3 ,这是返回Firebase服务的动态链接的地图:https://v73j2.app.goo.gl/? link = https://www.holinapp.com/dl/?chatId%3D-KXqOOZ- 817GnBm8q1Ep%26userId%3DYqx6IeYkQGgxO8fIezTahCi5CEj2&APN = com.letsplanideas.holin&d = 1
我正在尝试在iOS应用中实施Firebase动态链接.目标是为营销目的设置一个干净的URL,以便人们可以在社交媒体上分享链接.这个想法是人们将共享以我的域名开头的干净的URL.
在点击该链接后安装应用程序时,我们希望能够通过查看Firebase提供的有效负载来跟踪推荐应用安装的人员.我认为此目标类似于Firebase的用例,可将网络用户转换为移动应用用户.
我想在社交媒体上分享的示例链接是:http://example.com/my-payload-here
我已经尝试了几个案例,但无论如何我都无法得到我正在寻找的行为.有没有人以前成功实现过这个?
这是我的测试程序:
以下是我的发现:
Firebase控制台生成的短链接(https://xyz.app.goo.gl/ABCD) - 链接在App Store中打开.我安装了应用程序.安装后启动应用程序时,不会传递有效负载.如果我退出应用程序,请返回iMessage中的链接,然后再次启动,交付有效负载.
与Firebase控制台中的"长动态链接"相同的长链接,用于在#1中生成的链接(https://xyz.app.goo.gl/?link=http://example.com/my-payload-here&isi = 12345&ibi = com.example.MyApp) - 行为与#1相同
使用我的域的短链接(http://example.com/redirect/my-payload-here,配置为301重定向到#2中的URL) - 在App Store中打开.我安装.安装后启动应用程序时,不会传递有效负载.如果我退出应用程序,请返回iMessage中的链接,然后再次启动,该链接仍会转到App Store.
我有一些问题:
我还参考了案例2中深层链接的Firebase流程图.
在使用page.link URL前缀(当时唯一的选项)之前,我已经在其他项目中创建了Firebase动态链接。但是,今天为新项目启用动态链接时,不再显示该选项。看起来自定义域的文档今天已更新。不幸的是,尽管他们提供了一些有用的示例,但并未解释如何以我能理解的方式解决我的问题。
因此,此消息似乎表明我需要“将链接放在子路径下”。在我看来,/link在此处添加路径前缀应该可以实现?但是进行更改后,我得到了相同的错误消息。
您似乎已经在此托管站点上提供了内容。将链接放在子路径下,以避免与现有内容冲突。
为了尝试解决此问题,我去了我的项目并添加了建议的Hosting配置并进行了部署。
firebase.json:
{
"hosting": {
"public": "dist",
"ignore": [
"**/.*"
],
"appAssociation": "AUTO",
"rewrites": [
{
"source": "/link/**",
"dynamicLinks": true
},
{
"source": "**",
"destination": "/index.html"
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
即使等待了一个小时,我仍然收到相同的错误,而且我不知道该怎么办。
请注意,/index.html由于我在www.devintent.com上托管了一个Angular单页应用程序,因此我对此进行了重写。
无论我做什么,我总是收到此错误,并且Continue按钮保持禁用状态。我尝试使用裸域devintent.com而不是www.devintent.com,但这无济于事。我尝试使用links.devintent.com,但遇到了相同的错误。
如果我手动disabled从Continue按钮中删除,则会收到以下错误消息:
这链接到用于为动态链接手动配置托管的文档,该文档已经完成了一些步骤。单击Check Again按钮只会使我回到上面第一张图像中的相同错误。
不使用自定义域的解决方法
我现在很高兴使用page.link链接,我只需要创建一个动态链接并不受阻地执行此任务,但是我也无法在控制台中找出任何允许我执行此操作的方法。
对此进行更新:我发现需要将子域添加到page.linkURL。工具提示最后会显示“或Google提供的免费域(例如,yourapp.page.link)”。我本来希望它不那么突出(因为我已经很长时间没有找到它了)。现在可以将使用devintent.page.link对我有效。
但是,我不确定自定义域配置为何不起作用,如果具有现有托管配置和自定义域的项目存在此类复杂性,为什么它会成为默认设置?
为 android 和 ios 开发一个反应原生的小应用程序,我需要通过单击firebase 动态链接打开我的应用程序。
此应用程序尚未在 AppStore 中发布,现在它在 TestFlight 环境中。我从来没有任何ios经验,所以不知道如何使用TestFlight检查动态链接。
在Android Beta 环境中,它运行得非常好。如果尚未安装该应用程序,我可以在 Play 商店中重定向。如果已安装,则应用程序会自行打开。
我想在发布到 AppStore 之前在 ios 中测试的相同场景。目前,它在 TestFlight 环境中,如果未安装该应用程序,则无法重定向。
我已经浏览了一些帖子,但还没有运气,帖子是:
如果我的应用不在 App Store 中,我该如何测试 Firebase 动态链接?
任何人都可以建议我如何使用 TestFlight 进行测试,或者有没有其他可能的方法来检查我的动态链接是否正常工作?
app-store ios testflight react-native firebase-dynamic-links
几天前我开始使用Firebase Dynamic Link这样的自定义广告系列参数.
https://subdomain.app.goo.gl/?apn=[package_name]&link=[link_url]
&utm_campaign=campaign&utm_content=content&utm_medium=medium&utm_source=source
Run Code Online (Sandbox Code Playgroud)
几天后,我检查了Google Analytics以检查Acquisition > Sources > Google Play部分中的新用户.但是有记录的Source / Medium价值(not set) / (not set).
这看起来广告系列参数不会通过动态链接重定向转移到Play商店.
有没有人成功获得预期价值?
我最近在我的应用中实施了Firebase动态链接.但是,当我按下动态链接时,虽然他们已经安装了应用程序,但是我的一些Android设备存在问题,这些设备被定向到Play商店.(它适用于其他设备,如Nexus 4,Samsung Note 4等)
所有Android设备都不支持Firebase动态链接感谢您的帮助!
编辑:经过进一步的研究后,我发现如果我将动态链接复制并粘贴到Chrome浏览器,那么通过单击WhatsApp等应用程序中的链接,它也无法正常工作.所以问题是chrome不会启动已安装的应用程序并将用户引导到Play商店.任何想法如何解决它?
谢谢!
我在我的应用程序集成火力动态链接按中提到的准则来源1,源2。对于默认域,应用程序上的一切都按预期工作。
但是,当我在 firebase 控制台上创建自定义子域并在 iOS 设备上使用它时,它无法按预期工作(即使安装了应用程序)。我已经加入像新的子applinks:example.page.link的能力=>相关网域在我的Xcode项目。
下面是直接场景:
1) 应用程序已安装在设备上。
2)点击电子邮件上的动态链接(带有自定义子域)https://example.page.link/abcXYZ。
3)直接打开应用程序,并linkHandled在我下面的代码总是false和completion从handleUniversalLink功能不会被调用。
func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
if let incomingURL = userActivity.webpageURL {
let linkHandled = FIRDynamicLinks.dynamicLinks()?.handleUniversalLink(incomingURL, completion: { (dynamiclink, error) in
if let dynamiclink = dynamiclink, let _ = dynamiclink.url {
self.handleIncomingDynamicLink(dynamiclink: dynamiclink)
}
})
return linkHandled
}
return false …Run Code Online (Sandbox Code Playgroud) 如果我在单击动态链接时安装应用程序.当我第一次打开应用程序时,所有来自动态的信息仍然可用.如何获取该信息?当我使用它时,它无法正常工作: getInitialLink() returns Promise<string|null>;
android firebase react-native firebase-dynamic-links react-native-firebase
在 Android 上一切正常,但在 ios 上,当应用程序已打开时,单击链接会将应用程序置于前台,但onLink不会调用该方法。
关联:
https://<url>/?link=<link>&apn=<apn>&ibi=<bundle>&isi=<isi>
包裹:
代码
import 'package:firebase_dynamic_links/firebase_dynamic_links.dart';
import 'package:flutter/material.dart';
class DynamicLinksService {
Future handleDynamicLinks(BuildContext context) async {
final PendingDynamicLinkData data =
await FirebaseDynamicLinks.instance.getInitialLink();
await _handleDynamicLink(context, data);
FirebaseDynamicLinks.instance.onLink(
onSuccess: (PendingDynamicLinkData dynamicLinkData) async {
await _handleDynamicLink(context, dynamicLinkData);
}, onError: (OnLinkErrorException e) async {
print('Dynamic link failed: ${e.message}');
});
}
Future _handleDynamicLink(
BuildContext context, PendingDynamicLinkData data) async {
final Uri deepLink = data?.link;
if (deepLink != null) {
print('_handleDeepLink | deepLink $deepLink');
await _doSomething(context, deepLink.toString());
} …Run Code Online (Sandbox Code Playgroud) firebase ×8
android ×5
ios ×4
react-native ×2
app-store ×1
deep-linking ×1
flutter ×1
testflight ×1