2016-06-21 2 views
3

Я использую недавно созданные вкладки Chrome Custom для Android, вместо использования веб-просмотров. This is the link to their documentationКак добавить EXTRA_REFERRER в конструктор CustomTabsIntent в пользовательскую вкладку Chrome для Android

Вот код, который показывает, как его использовать.

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

Вопрос в том, что я хочу добавить Intent.EXTRA_REFERRER к этому. Ниже приводится пара скопирована из своего блога в своих собственных словах ..

Это, как правило, очень важно для веб-сайтов, чтобы отслеживать, где их трафик откуда. Убедитесь, что вы дайте им знать, что вы отправляете их пользователь , установив реферер при запуске вашей настраиваемой вкладки

intent.putExtra(Intent.EXTRA_REFERRER, 
      Uri.parse(Intent.URI_ANDROID_APP_SCHEME + "//" + context.getPackageName())); 

мне не удалось выяснить какое-либо намерение, созданное для запуска пользовательских вкладок .. Где добавить эту строку? ? Если кто-то наткнулся на это, помогите пожалуйста.

ответ

8

вы можете поставить дополнительный на Intent, что находится внутри CustomTabsIntent созданного застройщиком, как следующее:

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

Пояснение: Под капотом настраиваемой вкладки открывается с помощью регулярного в Intent с набором дополнительных функций, которые настраивают настройку пользовательского интерфейса. Можно увидеть больше о том, как это работает на Low Level API section документах. Когда вызывается CustomTabsIntent.Builder#build(), он создает CustomTabsIntent с правильно настроенным Intent внутри него. Это намерение по-прежнему раскрывается API, и это то, что мы используем для добавления EXTRA_REFERRER.

+0

Да, я изменил свой код. но можете ли вы рассказать мне, что это такое? –

+0

Добавлено короткое объяснение. – andreban

+4

Я думаю, что документация неверна, поскольку Intent.URI_ANDROID_APP_SCHEME - это целочисленный флаг, который имеет значение 2, которое делает URI реферера «2: //com.example.app». Так что я думаю, что было бы лучше установить EXTRA_REFERRER на Uri.parse ("android-app: //" + context.getPacakgeName() –