使用android在cordova中管理cookie
我用cordova为android开发了一个应用程序,主页是本地的,并通过jQuery调用web服务。该应用程序有一个用于查看PDF的插件 现在,我们想要查看PDF,但要查看PDF,需要登录服务器。登录过程使用jQuery完成,并且可以正常工作。登录服务器后,我们可以调用需要登录的服务 问题是我们想要检索一个需要登录的PDF,但是http会话不能从jquery共享到cordova插件(或webview)。服务器上的请求类似于非日志用户 我们试图恢复PDF文件,但不需要登录,它可以正常工作 使用的插件基于 有什么想法吗 我们尝试用jquery检索pdf,并将字节数组传递给插件,但没有成功。使用android在cordova中管理cookie,android,cordova,cookies,Android,Cordova,Cookies,我用cordova为android开发了一个应用程序,主页是本地的,并通过jQuery调用web服务。该应用程序有一个用于查看PDF的插件 现在,我们想要查看PDF,但要查看PDF,需要登录服务器。登录过程使用jQuery完成,并且可以正常工作。登录服务器后,我们可以调用需要登录的服务 问题是我们想要检索一个需要登录的PDF,但是http会话不能从jquery共享到cordova插件(或webview)。服务器上的请求类似于非日志用户 我们试图恢复PDF文件,但不需要登录,它可以正常工作 使用的
另一个想法是将jquery的cookie的内容移动到插件中,但我们无法修复此cookie。我们要做的是在服务器上创建会话的调用(成功)中捕获cookie。我们将cookie保存在本地,然后将其发送到打开PDF插件,该插件将cookie添加到生成本机部分的调用中 JS部分:
success: _.bind(function(data, textStatus, request){
var header = request.getAllResponseHeaders();
console.log("header: "+header);
var match = header.match(/(Set-Cookie|set-cookie|Set-cookie): (.+?);/);
console.log("match: "+match);
if(match!==undefined && match!==null && match.length>=3){
console.log("CON COOKIE");
console.log("COOKIE: "+match[2]);
localStorage.setItem("miCookie",match[2]);
}
},this),
插件调用
function callShowPdfPluginAndroid( param ){
require(['utils'], function(utils) {
utils.showLoading();
return cordova.exec( function(){utils.hideLoading();},
function(error){utils.hideLoading();nativePluginErrorHandler(error);},
"NativeBridgeAndroid",
"ShowPdf",
[param,localStorage.getItem("miCookie")]);
});
}
本地人:
URL u = new URL(params[0]);
HttpURLConnection c = (HttpURLConnection) u.openConnection();
c.setRequestMethod("GET");
c.setRequestProperty("Cookie",cookie);
c.setDoOutput(true);
c.connect();