从Play商店安装后未收到Firebase动态链接

时间:2017-07-11 07:38:55

标签: android firebase firebase-dynamic-links

在我的方案中,我在我的应用中使用一些分析参数生成动态链接并使用下面的代码行

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

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

后来,我想在发布版本上测试它。所以,我生成了一个发布版apk,并将上面的代码行修改为此

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

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

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

太好了!!

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

我从playstore点击了打开按钮,我的应用程序启动了启动屏幕,应该检测到深层链接。

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

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

请帮助!

修改 我的意图过滤器看起来像这样

        <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>

2 个答案:

答案 0 :(得分:0)

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

因此,您不必为myapp.app.goo.gl添加过滤器,而是为myapp.com添加过滤器。

答案 1 :(得分:-1)

HI首先有两个Builder Constructor 1.默认构造函数,表示打开您的应用程序 2.构造函数采用打开参数String,表示您是否需要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
                        // ...
                    }
                }
            });