通过Intent将cookie传递给浏览器

时间:2010-09-15 11:44:13

标签: java android

我在android中保存了一个cookie。现在我想把它传递给我的浏览器意图。看看我目前的代码:

Intent browser = new Intent("android.intent.action.VIEW",
                            Uri.parse("http://mypage.php/memberpagethatrequireacookie.php"));
//putExtra cannot take these arguments -> browser.putExtra("org.apache.http.cookie.Cookie", cookie);
startActivity(browser);

我希望它暂时存储在我的浏览器中,以便我的成员页面成功加载。 我的cookie是从HTTP请求成功创建的,我将其分配给List<Cookie> cookie; 告诉我是否应该提供更多代码。

有什么想法吗?提前谢谢!

3 个答案:

答案 0 :(得分:12)

浏览器没有记录Intent个附加内容,更不用说允许您注入cookie了。当然,用户可能正在使用其他浏览器。

欢迎您在应用中使用WebView,并且可以使用CookieManager将Cookie注入WebView的环境。

答案 1 :(得分:5)

以下是使用android.proveder.Browser的答案:

我有一个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 :(得分:0)

上面的代码可以正常设置标题(感谢它),但我无法以这种方式设置cookie。我怀疑的是,如果网络浏览器已经为目标网址存储了Cookie,它将覆盖使用EXTRA_HEADERS创建的Cookie。