Добавление пользовательских заголовков во все браузеры

Я работаю над приложением, в котором хочу добавить заголовки в браузер в Android. Он отлично работает в Google Chrome.

Но это не работает в других доступных браузерах, таких как Firefox, браузер UC, OperaMini, Dolphin.

Ниже приведен код, который я пробовал.

Intent mIntent = new Intent(Intent.ACTION_VIEW,Uri.parse(URL));
Bundle bundle = new Bundle();
bundle.putString(Constants.REQUEST_HEADER_TOKEN, "token");
bundle.putString(Constants.REQUEST_HEADER_AUTH, "Basic bfjdslfs");
mIntent.putExtra(Browser.EXTRA_HEADERS, bundle);
startActivity(mIntent);

Любая помощь будет оценена. Спасибо заранее.


person Pragya Singla    schedule 18.07.2016    source источник
comment
что вы пробовали до сих пор, кроме этого...?? пожалуйста, укажите хотя бы несколько ссылок... а также какую ошибку вы получаете при добавлении заголовков в другие браузеры.   -  person Harry Sharma    schedule 18.07.2016
comment
почему вы не используете веб-просмотр....??   -  person kiran kumar    schedule 18.07.2016
comment
Точно, то, что говорит Киран, верно...!! использовать веб-просмотр   -  person Harry Sharma    schedule 18.07.2016
comment
@HarrySharma, WebView часто является плохим решением, потому что оно отличается от ОС к ОС и от производителя к производителю. Мобильные браузеры намного лучше, чем WebView.   -  person CoolMind    schedule 25.02.2020


Ответы (2)


Нет требования, чтобы браузеры обращали внимание на дополнительные элементы, такие как EXTRA_HEADERS, REQUEST_HEADER_TOKEN и т. д.

Либо используйте WebView, либо живите без добавления заголовков.

person CommonsWare    schedule 18.07.2016
comment
@PragyaSingla: WebView может обрабатывать перенаправления на стороне сервера при использовании WebViewClient. Поскольку у вас нет возможности изменить поведение других веб-браузеров, вам необходимо изменить свой подход. - person CommonsWare; 18.07.2016
comment
В веб-представлении иногда ссылка перенаправления прерывается во время процесса перенаправления, и нет возможности определить, находится ли ссылка вниз или вверх. В этом случае веб-просмотр прекращает обработку. Поэтому я должен использовать веб-браузер. - person Pragya Singla; 18.07.2016
comment
@PragyaSingla: Возможно, вам следует задать отдельный вопрос о переполнении стека, чтобы получить помощь в решении вашей проблемы WebView. В конце концов, некоторые веб-браузеры используют WebView. Или измените свой веб-сервер так, чтобы вам не нужны были эти настраиваемые заголовки. Или не используйте WebView для выполнения HTTPS-запроса, а вместо этого используйте что-то другое (например, HttpURLConnection, OkHttp3). Повторяю: поскольку у вас нет средств изменить поведение других веб-браузеров, вам необходимо изменить свой подход. - person CommonsWare; 18.07.2016

Это решение определенно работает с мобильным браузером Chrome (не проверял другие)

 Intent mIntent = new Intent(Intent.ACTION_VIEW,Uri.parse(URL));
    Bundle bundle = new Bundle();
    bundle.putString("Authorization", "Basic " + token);
    mIntent.putExtra(Browser.EXTRA_HEADERS, bundle);
    startActivity(mIntent);

Однако будьте осторожны со ссылками на файлы, которые можно открыть в каком-либо другом приложении по умолчанию.

В моем случае была проблема с pdf Каждая ссылка, заканчивающаяся на .pdf (http://lol.com/test.pdf) открывается не в веб-браузере, а в какой-либо программе чтения PDF-файлов, после чего EXTRA_HEADERS не отправляются.

person DespeiL    schedule 20.09.2019