使用浏览器意图时传递标题

时间:2010-09-20 10:01:48

标签: android android-intent http-headers android-webview

我想在打开网页时传递一些标题。现在,我正在做的事情如下: browserIntent = new Intent(Intent.ACTION_VIEW,Uri.parse(data.link)); startActivity(browserIntent);

现在我卡住了,因为我不知道如何使用browserIntent传递标头。我尝试过使用browserIntent.putExtra()但它不起作用。

任何人都可以帮忙。!!

2 个答案:

答案 0 :(得分:16)

这也是我过去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

答案 1 :(得分:2)

Satoshi猜测,这与Chrome无法合作。如果您需要传递标题,则需要创建自己的WebView并使用标题地图加载网址。假设mWebView是对您的webview的引用。

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