Firebase Deep Link短网址 [英] Firebase Deep Link short URL

查看:248
本文介绍了Firebase Deep Link短网址的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Firebase深层链接的链接可以缩短吗?他们有这个功能吗?生成的链接太长,并不好。



感谢提前。

解决方案 现在,Firebase支持缩短动态链接 com / docs / dynamic-links / short-linksrel =nofollow noreferrer> programmatically 问题得到一个很长的,而不是用户友好的URL在编程创建动态链接时。



我找到的解决方案是使用,非常出色。
这个链接指向Java库,我在Android中使用它,但你也可以做一个简单的http请求。



我会发布我的Android代码以防万一你需要它:

  private void createDynamicLink(){
// 1.创建动态链接像往常一样
String packageName = getApplicationContext()。getPackageName();
字符串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。从创建的动态链接中创建一个缩短的URL。

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

新增AsyncTask< Void,Void,String>(){
@Override
保护字符串doInBackground(Void ... params){
Url url = new Url ();
url.setLongUrl(uri.toString());
尝试{
Urlshortener.Url.Insert insert = urlshortener.url()。insert(url);
insert.setKey(YOUR_API_KEY);
url = insert.execute();
Log.e(url.getId(),url.getId());
返回url.getId();
} catch(IOException e){
e.printStackTrace();
return uri.toString();


$ b @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);


$ / code>

希望它有帮助!!


can the links for Firebase deep links be shortened? Do they have that feature? Links generated are too long and that is not good.

Thanks is advance.

解决方案

UPDATE

Firebase now supports shorten dynamic links programmatically.

I've faced the same problem getting a long and not user friendly URL when creating a dynamic link programmatically.

The solution I've found is to use the Google URL Shortener API that works brilliant. That link points to the Java library, I'm using it in Android, but you can do also a simple http request.

I'll post my Android code in case you need it:

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);

}

Hope it helps!!

这篇关于Firebase Deep Link短网址的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆