Передача заголовков при использовании намерения браузера - PullRequest
10 голосов
/ 20 сентября 2010

Я хочу передать некоторые заголовки при открытии веб-страницы. Прямо сейчас я делаю что-то вроде: browserIntent = new Intent(Intent.ACTION_VIEW,Uri.parse(data.link)); startActivity(browserIntent);

Теперь я застрял, так как не знаю, как передавать заголовки с помощью browserIntent. Я пытался использовать browserIntent.putExtra (), но он не работает.

Может кто-нибудь, пожалуйста, помогите. !!

Ответы [ 2 ]

16 голосов
/ 14 июля 2011

Это был мой самый большой вопрос за последние 2 дня!И я нашел это !!!

У меня есть объект Map, в котором я хранил информацию заголовка.Затем следующее:

Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
Bundle bundle = new Bundle();
if(mExtraHeader!=null){
 for(String key: mExtraHeader.keySet()){
  bundle.putString(key, mExtraHeader.get(key));
 }
}
i.putExtra(Browser.EXTRA_HEADERS, bundle);
startActivity(i);

Одна проблема ... Я думаю, это будет работать только с браузером по умолчанию, а другие браузеры не будут иметь Browser.EXTRA_HEADERS Я полагаюРесурс: http://gitorious.org/rowboat/packages-apps-browser/blobs/a563d09392905140893d7a017dd63721577e1953/src/com/android/browser/BrowserActivity.java

2 голосов
/ 20 марта 2014

Как и предположил Сатоши, это не работает с Chrome. Если вам нужно передать заголовки, вам нужно создать свой собственный WebView и загрузить URL с картой заголовков. Предположим, что mWebView - это ссылка на ваше веб-представление.

Map<String, String> headers = new HashMap<>();
headers.put("referer", "http://some-referer");
mWebView.loadUrl(mUrl, headers);
...