¿Cómo crear XWalkWebResourceResponse?

Estoy buscando un método para crear XWalkWebResourceResponse . Mi caso sigue.

Estoy creando el cliente personalizado de XWalkResourceClient que interceptará todas las peticiones de la red. Toda la petición que debe ser interceptada vuelve como contenedor abstracto – AppWebResourceResponse .

public final class CrossWebViewClient extends XWalkResourceClient { // other fields and constructor CrossWebResourceResponseMapper responseMapper; @Override public XWalkWebResourceResponse shouldInterceptLoadRequest(XWalkView view, XWalkWebResourceRequest request) { AppWebResourceRequest mappedRequest = requestMapper.toGenericRequest(request); AppWebResourceResponse interceptedResponse = requestInterceptor.shouldInterceptRequest(mappedRequest); if (interceptedResponse == null) { return super.shouldInterceptLoadRequest(view, request); } return responseMapper.toTargetResponse(interceptedResponse); } } 

El último paso. Debo adaptar AppWebResourceResponse a XWalkWebResourceResponse y aquí es donde tengo un problema.

 public class CrossWebResourceResponseMapper implements AppWebResourceResponse.Mapper<XWalkWebResourceResponse> { @Override public XWalkWebResourceResponse toTargetResponse(final AppWebResourceResponse appResponse) { String mimeType = appResponse.getMimeType(); String encoding = appResponse.getEncoding(); int statusCode = appResponse.getStatusCode(); String reasonPhrase = appResponse.getReasonPhrase(); Map<String, String> headers = appResponse.getResponseHeaders(); InputStream data = appResponse.getData(); // ??? how to create response object? XWalkWebResourceResponse response; response.setMimeType(mimeType); response.setEncoding(encoding); response.setStatusCodeAndReasonPhrase(statusCode, reasonPhrase); response.setResponseHeaders(headers); response.setData(data); return response; } } 

De acuerdo con la API tiene constructor público new XWalkWebResourceResponse(bridge) que consume objeto de puente, aunque no he encontrado una forma de recuperar puente particular (org.xwalk.core.internal.XWalkWebResourceResponseBridge).

¿Dónde puedo recuperar XWalkWebResourceResponseBridge ?

Gracias por adelantado.

Actualización el 25/04/2016:

De acuerdo con Xiaofeng es posible crear objeto XWalkWebResourceResponse utilizando objeto XWalkResourceClient .

 public class XWalkWebResourceResponseMapper { public XWalkWebResourceResponse toTargetResponse(XWalkResourceClient client, AppWebResourceResponse appResponse) { String mimeType = appResponse.getMimeType(); String encoding = appResponse.getEncoding(); int statusCode = appResponse.getStatusCode(); String reasonPhrase = appResponse.getReasonPhrase(); Map<String, String> headers = appResponse.getResponseHeaders(); InputStream data = appResponse.getData(); return client.createXWalkWebResourceResponse(mimeType, encoding, data, statusCode, reasonPhrase, headers); } } public final class CrossWebViewClient extends XWalkResourceClient { @Override public XWalkWebResourceResponse shouldInterceptLoadRequest(XWalkView view, XWalkWebResourceRequest request) { AppWebResourceRequest mappedRequest = requestMapper.toGenericRequest(request); AppWebResourceResponse interceptedResponse = requestInterceptor.shouldInterceptRequest(mappedRequest); if (interceptedResponse == null) { return super.shouldInterceptLoadRequest(view, request); } return responseMapper.toTargetResponse(this, interceptedResponse); } } 

Gracias usando Crosswalk.

Para crear XWalkWebResourceResponse, debe utilizar createXWalkWebResourceResponse en XWalkResourceClient, por favor vea aquí . Debido a un problema de bloque interno, no puede utilizar constructor general para crear.

Aquí hay un ejemplo sobre cómo usarlo: https://github.com/crosswalk-project/crosswalk/pull/3454/files

  class MyResourceClient extends XWalkResourceClientInternal { MyResourceClient(XWalkViewInternal view) { super(view); } @Override XWalkWebResourceResponseInternal shouldInterceptLoadRequest(XWalkViewInternal view, XWalkWebResourceRequestInternal request) { // Handle it here. // Use createXWalkWebResourceResponse instead of "new XWalkWebResourceResponse" // to create the response. // Similar with before, there are two function to use: // 1) createXWalkWebResourceResponse(String mimeType, String encoding, InputStream data) // 2) createXWalkWebResourceResponse(String mimeType, String encoding, InputStream data, // int statusCode, String reasonPhrase, Map<String, String> responseHeaders) ... } 

}

También puede ver esto en el documento de la API de XWalkView más adelante.

  • ¿Qué causa "java.io.IOException: se restableció el flujo: CANCELAR" con okhttp y spdy?
  • El mensaje de HttpPost de Android no enviará su carga útil a través del cable
  • Phonegap - navigator.connection.type no definido
  • API para configurar direcciones IP estáticas en una aplicación de Android
  • Android: NAT Traversal?
  • Compruebe la conexión a Internet activa Android
  • Jmdns registra en la interfaz IPv4, pero transmite IPv6
  • Capturar el tráfico del teléfono móvil en wireshark
  • Iptables en android
  • Temas y contribuciones para Volley
  • Sugerencias sobre el desarrollo de juegos multijugador en iOS y Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.