如何在Android的Chrome自定义标签中将EXTRA_REFERRER添加到CustomTabsIntent构建器

Pal*_*rji 3 android chrome-custom-tabs android-customtabs

我正在使用新推出的Chrome自定义标签,而不是使用网页浏览.这是他们文档的链接

以下是显示如何使用它的代码.

String url = ¨https://paul.kinlan.me/¨;
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.launchUrl(this, Uri.parse(url));
Run Code Online (Sandbox Code Playgroud)

问题是我想为此添加Intent.EXTRA_REFERRER.下面是用他们自己的话从他们的博客复制的段落..

对于网站来说,跟踪流量来源通常非常重要.通过在启动自定义标签时设置引荐来源,确保让他们知道您正在向其发送用户

intent.putExtra(Intent.EXTRA_REFERRER, 
             Uri.parse(Intent.URI_ANDROID_APP_SCHEME + "//" + context.getPackageName()));
Run Code Online (Sandbox Code Playgroud)

我没有弄清楚为启动自定义标签而创建的任何意图..在哪里添加此行?如果有人遇到这个,请帮忙.

and*_*ban 10

您可以将额外内容放在构建器创建的CustomTabsIntent内的Intent上,如下所示:

String url = ¨https://paul.kinlan.me/¨;
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.intent.putExtra(Intent.EXTRA_REFERRER,
        Uri.parse("android-app://" + context.getPackageName()));
customTabsIntent.launchUrl(this, Uri.parse(url));
Run Code Online (Sandbox Code Playgroud)

说明:通过使用常规Intent和一组配置UI自定义的Extras 打开Custom选项卡.可以在文档的低级API部分查看有关其工作原理的更多信息.当CustomTabsIntent.Builder#build()被调用时,它会创建一个CustomTabsIntent,里面坐了一个正确配置的意图.这个意图仍然由API公开,这就是我们用来添加EXTRA_REFERRER的方法.

  • 我认为文档是错误的,因为Intent.URI_ANDROID_APP_SCHEME是一个整数标志,其值为2,使引用URI为"2://com.example.app".所以我认为将EXTRA_REFERRER设置为Uri.parse会更好("android-app://"+ context.getPacakgeName() (6认同)