我目前正在使用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();
}
但是我遇到了同样的错误。
我对此一无所知,因此不胜感激。 谢谢!