Добавяне на персонализирани заглавки във всички браузъри

Работя върху приложение, където искам да добавя заглавки към браузъра в 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
Точно това, което киран казва, е правилно...!! използвайте webview   -  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