2015-05-25 43 views
1

我使用Crosswalk的XWalkView在我的Android應用程序中顯示網頁。我試圖在我的網頁上使用會話,但會話根本不起作用,我無法保存任何會話。會話在Android中不起作用XWalkView

我這是怎麼初始化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'; 
?> 

是沒有在$ _SESSION [ '測試']

回答

0

PHP會議xwalkview工作,你有把session_start();在每個php文件的開始處使用會話。