我使用Crosswalk的XWalkView在我的Android应用程序中显示网页。我尝试在我的网页上使用会话,但是会话根本不起作用,我不能保存任何会话。
这是我初始化XWalkView的方式:
xWalkWebView = (XWalkView)findViewById(R.id.page);
xWalkWebView.setResourceClient(new MyResourceClient(xWalkWebView));
xWalkWebView.load(API.BASE_URL, null);
if(me.beesafe.beesafe.app.AppInfo.isDebug) {
// turn on debugging
XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true);
}这是MyResouceClient:
class MyResourceClient extends XWalkResourceClient {
MyResourceClient(XWalkView view) {
super(view);
}
private InputStream inputStream;
private String builtDataString() throws IOException {
return "key=test";
}
private void writeDataToBuffer(ByteArrayOutputStream stream) throws IOException {
stream.write(this.builtDataString().getBytes());
stream.flush();
stream.close();
}
private void writeOutputStream(OutputStream output, ByteArrayOutputStream buffer) throws IOException {
byte[] bufferArray = buffer.toByteArray();
for(int i = 0; i < bufferArray.length; i++) {
output.write(bufferArray[i]);
}
output.flush();
output.close();
}
public String getContentType() {
return "application/x-www-form-urlencoded";
}
public String createBoundary() {
return "--------------------"
+ Long.toString(System.currentTimeMillis(), 16);
}
@Override
public WebResourceResponse shouldInterceptLoadRequest(XWalkView view, String urlStr) {
HttpURLConnection connection = null;
inputStream = null;
try {
if(urlStr.equalsIgnoreCase(API.BASE_URL)) {
URL url = new URL(urlStr);
connection = (HttpURLConnection) url.openConnection();
connection.setFixedLengthStreamingMode(this.builtDataString().getBytes().length);
connection.setUseCaches(false);
connection.setDoInput(true);
connection.setConnectTimeout(20 * 1000);
connection.setReadTimeout(30 * 1000);
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", getContentType());
connection.setRequestProperty("Content-Language", "en-US");
connection.setRequestProperty("Connection", "keep-alive");
DataOutputStream outputStream = new DataOutputStream(
connection.getOutputStream());
ByteArrayOutputStream outputBuffer = new ByteArrayOutputStream();
writeDataToBuffer(outputBuffer);
writeOutputStream(outputStream, outputBuffer);
inputStream = connection.getInputStream();
}
} catch (MalformedURLException e) {
e.printStackTrace();
inputStream = null;
} catch (IOException e) {
e.printStackTrace();
inputStream = null;
} finally {
/*if (connection != null) {
connection.disconnect();
}*/
}
if(/*inputStream != null*/urlStr.equalsIgnoreCase(API.BASE_URL)) {
return new WebResourceResponse(null, "utf-8", inputStream);
} else {
return super.shouldInterceptLoadRequest(view, urlStr);
}
}
}帮帮忙好吗?如何打开会话?
如果我只是在我的网站上使用这个PHP代码,它不能工作:
<?php
session_start();
$_SESSION['test'] = 'test';
?>THere在$_SESSION“‘test”中为nothing
发布于 2016-12-07 13:13:40
php session在xwalkview中工作,你必须把session_start();放在每个使用会话的php文件的开头。
https://stackoverflow.com/questions/30442162
复制相似问题