使用Facebook的移动主机API安装Android应用程序,但无法获取查询数据?

时间:2015-08-17 10:00:17

标签: android facebook applinks

我没有公开的网址,我可以对其进行注释以支持应用链接,因此我使用Facebook的移动主机API进行应用链接。

根据应用程序链接文档,我可以传递App Links Hosting API提供的规范URL(https://fb.me/xxxxxxxxxx)。规范URL包括三个信息,URL,APP名称,包名称,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应用程序链接传递我的查询数据?是否使用相同的方法安装或不安装应用程序?

1 个答案:

答案 0 :(得分:1)

target_url始终是共享的网址,在您的情况下,它是https://fb.me/xxxxxxxxxx

如果您想要查询参数,您有两种选择:

  1. 在您分享查询参数时将其添加到您的规范网址(例如https://fb.me/xxxxxxxxxx?ads_name=1)
  2. 而不是获取target_url,只需使用传入意图的数据字段中的网址(例如Uri uri = getIntent().getData(),这将是自定义网址,或my_app_scheme:// actions?ads_name = 1)< / LI>