我没有可以注释以支持应用链接的公共(public) Web URL,因此我使用 Facebook 的移动托管 API 来获取应用链接。
根据应用链接文档,我可以传递应用链接托管 API 提供的规范 URL ( https://fb.me/xxxxxxxxxx )。 Canonical URL包括三个信息,URL、APP Name、Package Name,URL是这样的:
my_app_scheme://actions?ads_name=1
我尝试从 Android 数据获取 URL 的 QueryParameter("ads_name") 以打开应用程序的定义页面。我使用以下代码。
AppLinkData.createFromActivity(MainActivity.this);
if (AppLinks.getTargetUrl(intentOtherApp) != null) {
Uri targetUrl = AppLinks.getTargetUrl(intentOtherApp);
if (targetUrl != null) {
Bundle appLinkData = AppLinks.getAppLinkData(getIntent());
if (appLinkData != null) {
String targetURLString = appLinkData.getString("target_url");
Uri targetURL = Uri.parse(targetURLString);
JSONObject jsonObject = new JSONObject();
String adsName = targetURL.getQueryParameter("ads_name");
try {
if (adsName != null) {
jsonObject.put("ads_name", adsName);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
*/
}
}
但我无法获取数据,我总是只能获取规范 URL。如何从 Facebook 应用程序链接传递我的查询数据?应用程序安装还是不安装使用相同的方法?
最佳答案
target_url 始终是共享的 URL,在您的情况下,它是 https://fb.me/xxxxxxxxxx
如果你想要查询参数,你有两个选择:
- 在分享时将查询参数添加到您的规范网址(例如 https://fb.me/xxxxxxxxxx?ads_name=1)
- 不是获取 target_url,而是使用来自传入 Intent 数据字段的 url(例如
Uri uri = getIntent().getData()
,这将是自定义 url,或 my_app_scheme://actions?ads_name=1)
关于android - 使用 Facebook 的移动托管 API 安装 android 应用程序,但无法获取查询数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32047561/