桌面浏览器中的Firebase动态链接

时间:2018-07-12 15:07:25

标签: android firebase firebase-dynamic-links

我目前正在使用Firebase动态链接在我的应用程序中共享项目。当我在Android设备中打开链接时,以下代码可以正常工作。

 public static Uri createDynamicUri(Context context, String id, String title, String imageUrl){

    Uri uri = createShareUri(context, id);

    DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
            .setLink(uri)
            .setDynamicLinkDomain(context.getString(R.string.firebase_link_domain))
            .setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build())
            .setSocialMetaTagParameters(
                    new DynamicLink.SocialMetaTagParameters.Builder()
                            .setTitle(title)
                            .setImageUrl(Uri.parse(imageUrl))
                            .setDescription(context.getString(R.string.app_name_long))
                            .build())
            .buildDynamicLink();

    return dynamicLink.getUri();
}

private static Uri createShareUri(Context context, String id) {
    Uri.Builder builder = new Uri.Builder();
    builder.scheme(context.getString(R.string.config_scheme))
            .authority(context.getString(R.string.config_host))
            .appendPath(context.getString(R.string.config_path_detail))
            .appendQueryParameter(Properties.QUERY_KEY_INSTRUCTABLE, id);
    return builder.build();
}

当我尝试在桌面浏览器中打开生成的链接时出现问题。我收到400错误。

我还尝试使用以下代码通过手动方式创建网址:

public static Uri createCustomUri(Context context){
    Uri.Builder builder = new Uri.Builder();
    try {
        builder.scheme(context.getString(R.string.config_scheme))
                .authority(context.getString(R.string.config_host_custom))
                .appendQueryParameter("link", URLEncoder.encode(context.getString(R.string.android_play_store_link), "utf-8"))
                .appendQueryParameter("apn", URLEncoder.encode(context.getString(R.string.package_name), "utf-8"))
                .appendQueryParameter("afl", URLEncoder.encode(context.getString(R.string.android_play_store_link), "utf-8"))
                .appendQueryParameter("d", URLEncoder.encode("1", "utf-8"))
                .appendQueryParameter("ofl", URLEncoder.encode(context.getString(R.string.android_play_store_link), "utf-8"));
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }

    return builder.build();
}

但是我遇到了同样的错误。

我对此一无所知,因此不胜感激。 谢谢!

0 个答案:

没有答案