标签: firebase-dynamic-links

如何使用Firebase从动态链接中获取额外参数?

我手动创建了动态链接,并在链接上设置了一些额外的参数,如下所示: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)

android firebase firebase-dynamic-links

11
推荐指数
1
解决办法
8323
查看次数

Firebase动态链接未与自定义标签上的短网址进行深层链接

我已经在我的应用程序中以编程方式创建了一些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

android firebase chrome-custom-tabs firebase-dynamic-links

11
推荐指数
1
解决办法
1592
查看次数

如何使用我自己的域名缩短Firebase动态链接

我正在尝试在iOS应用中实施Firebase动态链接.目标是为营销目的设置一个干净的URL,以便人们可以在社交媒体上分享链接.这个想法是人们将共享以我的域名开头的干净的URL.

在点击该链接后安装应用程序时,我们希望能够通过查看Firebase提供的有效负载来跟踪推荐应用安装的人员.我认为此目标类似于Firebase的用例,可将网络用户转换为移动应用用户.

我想在社交媒体上分享的示例链接是:http://example.com/my-payload-here

我已经尝试了几个案例,但无论如何我都无法得到我正在寻找的行为.有没有人以前成功实现过这个?

这是我的测试程序:

  1. 卸载应用程序
  2. 将要在iMessage中测试的链接发送给自己
  3. 点按我的iOS设备上的链接(不使用模拟器)
  4. 从App Store安装应用程序
  5. 通过点击App Store中的"打开"按钮,在下载完成后启动应用程序

以下是我的发现:

  1. Firebase控制台生成的短链接(https://xyz.app.goo.gl/ABCD) - 链接在App Store中打开.我安装了应用程序.安装后启动应用程序时,不会传递有效负载.如果我退出应用程序,请返回iMessage中的链接,然后再次启动,交付有效负载.

  2. 与Firebase控制台中的"长动态链接"相同的长链接,用于在#1中生成的链接(https://xyz.app.goo.gl/?link=http://example.com/my-payload-here&isi = 12345&ibi = com.example.MyApp) - 行为与#1相同

  3. 使用我的域的短链接(http://example.com/redirect/my-payload-here,配置为301重定向到#2中的URL) - 在App Store中打开.我安装.安装后启动应用程序时,不会传递有效负载.如果我退出应用程序,请返回iMessage中的链接,然后再次启动,该链接仍会转到App Store.

我有一些问题:

  1. 案例1和案例2的首次启动时,为什么没有交付有效载荷?
  2. 我们如何才能启动应用并提供有效负载而不是去App Store?

我还参考了案例2中深层链接的Firebase流程图.

ios firebase firebase-dynamic-links

11
推荐指数
2
解决办法
5882
查看次数

无法使用自定义域将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,但遇到了相同的错误。

如果我手动disabledContinue按钮中删除,则会收到以下错误消息:

手动配置路径前缀消息 这链接到用于为动态链接手动配置托管文档,文档已经完成了一些步骤。单击Check Again按钮只会使我回到上面第一张图像中的相同错误。


不使用自定义域的解决方法

我现在很高兴使用page.link链接,我只需要创建一个动态链接并不受阻地执行此任务,但是我也无法在控制台中找出任何允许我执行此操作的方法。

对此进行更新:我发现需要将子域添加到page.linkURL。工具提示最后会显示“或Google提供的免费域(例如,yourapp.page.link)”。我本来希望它不那么突出(因为我已经很长时间没有找到它了)。现在可以将使用devintent.page.link对我有效。


但是,我不确定自定义域配置为何不起作用,如果具有现有托管配置和自定义域的项目存在此类复杂性,为什么它会成为默认设置?

firebase-hosting firebase-dynamic-links

11
推荐指数
4
解决办法
2720
查看次数

如何使用 TestFlight(未发布的 ios 应用)测试 Firebase 动态链接

为 android 和 ios 开发一个反应原生的小应用程序,我需要通过单击firebase 动态链接打开我的应用程序。

此应用程序尚未在 AppStore 中发布,现在它在 TestFlight 环境中。我从来没有任何ios经验,所以不知道如何使用TestFlight检查动态链接。

在Android Beta 环境中,它运行得非常好。如果尚未安装该应用程序,我可以在 Play 商店中重定向。如果已安装,则应用程序会自行打开。

我想在发布到 AppStore 之前在 ios 中测试的相同场景。目前,它在 TestFlight 环境中,如果未安装该应用程序,则无法重定向。

我已经浏览了一些帖子,但还没有运气,帖子是:

如果我的应用不在 App Store 中,我该如何测试 Firebase 动态链接?

测试未发布应用的 Firebase 动态链接

任何人都可以建议我如何使用 TestFlight 进行测试,或者有没有其他可能的方法来检查我的动态链接是否正常工作?

app-store ios testflight react-native firebase-dynamic-links

11
推荐指数
1
解决办法
2556
查看次数

无法在Google Analytics中查看Firebase动态链接的自定义广告系列参数结果

几天前我开始使用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商店.

有没有人成功获得预期价值?

android google-analytics firebase firebase-dynamic-links

10
推荐指数
0
解决办法
1028
查看次数

Firebase动态链接无法打开/启动我已安装的应用

我最近在我的应用中实施了Firebase动态链接.但是,当我按下动态链接时,虽然他们已经安装了应用程序,但是我的一些Android设备存在问题,这些设备被定向到Play商店.(它适用于其他设备,如Nexus 4,Samsung Note 4等)

所有Android设备都不支持Firebase动态链接感谢您的帮助!

编辑:经过进一步的研究后,我发现如果我将动态链接复制并粘贴到Chrome浏览器,那么通过单击WhatsApp等应用程序中的链接,它也无法正常工作.所以问题是chrome不会启动已安装的应用程序并将用户引导到Play商店.任何想法如何解决它?

谢谢!

android deep-linking firebase firebase-dynamic-links

10
推荐指数
0
解决办法
565
查看次数

当动态链接具有自定义子域时,Firebase 动态链接在 iOS 上不起作用

我在我的应用程序集成火力动态链接按中提到的准则来源1源2。对于默认域,应用程序上的一切都按预期工作。

但是,当我在 firebase 控制台上创建自定义子域并在 iOS 设备上使用它时,它无法按预期工作(即使安装了应用程序)。我已经加入像新的子applinks:example.page.link能力=>相关网域在我的Xcode项目。

下面是直接场景:

1) 应用程序已安装在设备上。

2)点击电子邮件上的动态链接(带有自定义子域)https://example.page.link/abcXYZ

3)直接打开应用程序,并linkHandled在我下面的代码总是falsecompletionhandleUniversalLink功能不会被调用。

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)

ios firebase firebase-dynamic-links

10
推荐指数
2
解决办法
6992
查看次数

Firebase动态链接 - 从Play商店安装应用程序后无法在Android中获取Url

如果我在单击动态链接时安装应用程序.当我第一次打开应用程序时,所有来自动态的信息仍然可用.如何获取该信息?当我使用它时,它无法正常工作: getInitialLink() returns Promise<string|null>;

android firebase react-native firebase-dynamic-links react-native-firebase

10
推荐指数
1
解决办法
2827
查看次数

Flutter - Firebase 动态链接未被 onLink 捕获,但在 iOS 上打开应用程序

在 Android 上一切正常,但在 ios 上,当应用程序已打开时,单击链接会将应用程序置于前台,但onLink不会调用该方法。

关联:

https://<url>/?link=<link>&apn=<apn>&ibi=<bundle>&isi=<isi>

包裹:

  • firebase_dynamic_links:^0.6.3

代码

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)

ios firebase flutter firebase-dynamic-links

10
推荐指数
1
解决办法
6763
查看次数