14

Firebase ディープリンクのリンクを短くすることはできますか? 彼らはその機能を持っていますか?生成されたリンクが長すぎて、よくありません。

4

5 に答える 5

12

アップデート

Firebase は、プログラムによる動的リンクの短縮をサポートするようになりました。

プログラムで動的リンクを作成するときに、長くてユーザーフレンドリーではない URL を取得するという同じ問題に直面しました。

私が見つけた解決策は、見事に機能するGoogle URL Shortener APIを使用することです。そのリンクは Java ライブラリを指しています。私は Android で使用していますが、単純な http リクエストを行うこともできます。

必要な場合に備えて、Android コードを投稿します。

private void createDynamicLink() {
    // 1. Create the dynamic link as usual
    String packageName = getApplicationContext().getPackageName();
    String deepLink = "YOUR DEEPLINK";
    Uri.Builder builder = new Uri.Builder()
            .scheme("https")
            .authority(YOUR_DL_DOMAIN)
            .path("/")
            .appendQueryParameter("link", deepLink)
            .appendQueryParameter("apn", packageName);

    final Uri uri = builder.build();

//2. Create a shorten URL from the dynamic link created.

    Urlshortener.Builder builderShortener = new Urlshortener.Builder (AndroidHttp.newCompatibleTransport(), AndroidJsonFactory.getDefaultInstance(), null);
    final Urlshortener urlshortener = builderShortener.build();

    new AsyncTask<Void, Void, String>() {
        @Override
        protected String doInBackground(Void... params) {
            Url url = new Url();
            url.setLongUrl(uri.toString());
            try {
                Urlshortener.Url.Insert insert=urlshortener.url().insert(url);
                insert.setKey("YOUR_API_KEY");
                url = insert.execute();
                Log.e("url.getId()", url.getId());
                return url.getId();
            } catch (IOException e) {
                e.printStackTrace();
                return uri.toString();
            }
        }

        @Override
        protected void onPostExecute(String dynamicLink) {
            Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
            sharingIntent.setType("text/plain");
            sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, getResources().getString(R.string.share_subject));
            sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, dynamicLink);
            startActivity(Intent.createChooser(sharingIntent, getResources().getString(R.string.share_using)));
            Log.e("dynamicLink", dynamicLink);
        }
    }.execute(null, null, null);

}

それが役に立てば幸い!!

于 2016-08-16T18:17:37.850 に答える
2

リンクは、Firebase コンソールの [Dynamic Links] タブで短縮できます。[新しい動的リンク] をタップすると、既存のリンクから短いリンクを作成するオプションが表示されます。

于 2016-05-31T23:24:08.720 に答える
0

現時点では、これをプログラムで行うことはできません。

于 2016-06-30T12:47:50.950 に答える