rbl*_*blk 8 android android-intent
我目前正在寻找一种在Android上启动默认浏览器应用程序并将会话cookie传递给它的方法.
我的应用程序与外部API进行通信,我无法使用HttpClient对其进行控制,然后将用户传递到站点进行最后阶段.
我知道这可能是使用WebView,但我特别需要打开外部浏览器应用程序而不是使用内部WebView.
我知道:
Intent.ACTION_VIEW
Run Code Online (Sandbox Code Playgroud)
可用于打开浏览器,但是我没有设法找到有关实际传递任何其他数据的大量信息.
任何帮助深表感谢.
小智 5
你知道 url-rewrite 吗?它将帮助您实现您的需求。一个 url-write 可能是这样的:“http://localhost:8080/test/error.jsp;jsessionid=C4E6732EBB4C17F409AB41143735C096”。
“jsessionid”是 sessionid 的键,C4E6732EBB4C17F409AB41143735C096 是值。表示 sessionid 属性的关键取决于 web 项目中使用的语言。
所以,如果你想保留会话,你可以像这样启动默认值:
Uri uri = Uri.parse("http://localhost:8080/test/error.jsp;jsessionid=C4E6732EBB4C17F409AB41143735C096");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
您可以从 HttpClient 获取的 sessionid,并将其添加到您的 url 后面。
还有一些问题需要注意。首先,在url中,分隔符是“;” 不是“?”,因为 sessionid 在 http 标头中,而不是在 http 正文中。其次,如果浏览器已经与服务器有会话,那么 url-rewrite 将不起作用,因为浏览器将使用自己的会话,要解决这个问题,您可以使用您的应用程序获取浏览器的会话并使用此会话在 HttpClient 中。
| 归档时间: |
|
| 查看次数: |
5001 次 |
| 最近记录: |