【问题标题】:Firebase dynamic link not received after install from play store从 Play 商店安装后未收到 Firebase 动态链接
【发布时间】:2017-07-11 07:38:55
【问题描述】:

在我的场景中,我正在我的应用程序中生成一个动态链接,其中包含一些分析参数并使用下面的代码行

.setAndroidParameters(new DynamicLink.AndroidParameters.Builder("XX.XXX.debug").build())

哪个工作正常,正在生成短链接,当我从其他窗口点击链接时,它会打开我的应用程序,并且动态链接已成功捕获在我的初始屏幕中。这是我的应用程序的调试版本。

后来,我也想在发布版本上对其进行测试。于是,我生成了一个release apk,也把上面几行代码修改成了这个

.setAndroidParameters(new DynamicLink.AndroidParameters.Builder("XX.XXX").build())

从中删除调试部分。我在 Playstore 的 ALPHA 频道上发布了我的应用。

我从 playstore 重新安装了发布版本,生成了链接并复制了它。现在为了测试深层链接,我卸载了我的应用程序的发布版本。

到目前为止一切顺利!

现在我点击了之前发布版本生成的复制链接,它打开了 Play 商店,重定向到我的应用,安装了 alpha 版本。

我点击了 Playstore 中的打开按钮,我的应用启动了初始屏幕,其中应该检测到深层链接。

问题 1 -> 未检测到深层链接

问题 2 -> 再次点击该深层链接应该会打开我的应用,但它会打开 Play 商店。

请帮忙!

编辑 我的意图过滤器看起来像这样

        <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="xxxx.app.goo.gl"
                android:scheme="http" />
            <data
                android:host="xxxx.app.goo.gl"
                android:pathPattern=".*"
                android:scheme="https" />

        </intent-filter>

【问题讨论】:

  • 对于问题 1:我们收到了一些来自 Play 商店的 Alpha 通道安装报告,但未发送 INSTALL_REFERRER 广播 - 动态链接依赖于获取深层链接。
  • 对于问题 2:您能否检查您是否在清单中为其他域设置了意图过滤器(如果更容易,请随时编辑问题以包含您的清单和域)
  • @IanBarber - 对于问题 1,我可以期待这在 PRODUCTION 频道中有效吗,或者我什么时候可以期待修复。
  • @IanBarber - 对于问题 2- 我已对您的请求进行了编辑,发布了我的意图过滤器。
  • 问题 1:是的,应该可以在生产环境中使用。

标签: android firebase firebase-dynamic-links


【解决方案1】:

您需要add intent filters 来获取您的链接实际所在的域。您可以将动态链接视为常规链接的包装器。

因此,与其为 myapp.app.goo.gl 添加过滤器,不如为 myapp.com 添加过滤器。

【讨论】:

    【解决方案2】:

    HI 首先有两个 Builder Constructor 1.默认构造器,即打开你的应用程序 2.构造函数采用开放参数字符串,这意味着如果你想要 URl 所以解决问题是

        Uri uri = Uri.parse("https://www.google.jo/");
        Uri uri1 = uri.buildUpon().appendQueryParameter("order", "725").build();
        DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
                .setLink(uri1)
                .setDynamicLinkDomain("rw4r7.app.goo.gl")
                .setAndroidParameters(
                        new DynamicLink.AndroidParameters.Builder("com.example.android")
                                .setMinimumVersion(1)
                                .build())
                // Open links with this app on Android
                .setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build())
                .setGoogleAnalyticsParameters(
                        new DynamicLink.GoogleAnalyticsParameters.Builder()
                                .setSource("orkut")
                                .setMedium("social")
                                .setCampaign("example-promo")
                                .build())
                .setItunesConnectAnalyticsParameters(
                        new DynamicLink.ItunesConnectAnalyticsParameters.Builder()
                                .setProviderToken("123456")
                                .setCampaignToken("example-promo")
                                .build())
                .setSocialMetaTagParameters(
                        new DynamicLink.SocialMetaTagParameters.Builder()
                                .setTitle("Example of a Dynamic Link")
                                .setDescription("This link works whether the app is installed or not!")
                                .build())
                // Open links with com.example.ios on iOS
                .buildDynamicLink();
    
        Uri dynamicLinkUri = dynamicLink.getUri();
        Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
                .setLink(uri1)
                .setDynamicLinkDomain("rw4r7.app.goo.gl")
                .setLongLink(dynamicLinkUri)
    
                // Set parameters
                // ...
                .buildShortDynamicLink()
                .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() {
                    @Override
                    public void onComplete(@NonNull Task<ShortDynamicLink> task) {
                        if (task.isSuccessful()) {
                            // Short link created
                            Uri shortLink = task.getResult().getShortLink();
                            Uri flowchartLink = task.getResult().getPreviewLink();
                            Intent intent = new Intent();
                            intent.setAction(Intent.ACTION_SEND);
                            intent.putExtra(Intent.EXTRA_TEXT, shortLink.toString());
                            intent.setType("text/plain");
                            intent.putExtra("testsawalha", "testSawalha");
                            startActivity(intent);
                        } else {
                            // Error
                            // ...
                        }
                    }
                });
    

    【讨论】:

      猜你喜欢
      • 2018-12-13
      • 2021-12-06
      • 2022-10-18
      • 2019-04-08
      • 2022-11-19
      • 1970-01-01
      • 2021-08-21
      • 1970-01-01
      • 2017-05-19
      相关资源
      最近更新 更多