2

アプリ リンクをサポートするために注釈を付けることができる公開 Web URL がないため、アプリ リンクには Facebook のモバイル ホスティング API を使用します。

アプリ リンクのドキュメントによると、App Links Hosting API によって提供される正規の URL ( https: //fb.me/xxxxxxxxxx ) を渡すことができます。正規 URL には、URL、APP 名、パッケージ名の 3 つの情報が含まれており、URL は次のようになります。

    my_app_scheme://actions?ads_name=1

アプリの定義済みページを開くために、Android Data から 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 アプリのリンクからクエリ データを渡すにはどうすればよいですか? また、同じ方法を使用してアプリをインストールするか、インストールしないか。

4

1 に答える 1

1

target_url は常に共有される URL であり、あなたの場合は https: //fb.me/xxxxxxxxxx です。

クエリ パラメータが必要な場合は、次の 2 つの選択肢があります。

  1. 共有するときに正規の URL にクエリ パラメータを追加します (例: https: //fb.me/xxxxxxxxxx?ads_name=1)。
  2. target_url を取得する代わりに、受信インテントのデータ フィールドからの URL を使用します (たとえばUri uri = getIntent().getData()、これはカスタム URL、または my_app_scheme://actions?ads_name=1 になります)。
于 2015-08-18T18:58:51.777 に答える