0
URL 로딩을 무시하려고합니다. 사용자 지정 HTTP 요청은 okhttp 라이브러리를 통해 구현됩니다. 응용 프로그램이 잘 시작하는 것 같지만 시작 직후에 종료됩니다. 반환 된 MIME 형식을 text/html로 설정했는지 두 번 확인했습니다. 그렇다면 문제는 어디에 있습니까? 여기 내 코드 :XWalkResourceClient.shouldInterceptLoadRequest가 제대로 작동하지 않는 것 같습니다.
public class MyXWalkResourceClient extends XWalkResourceClient {
@Override
public XWalkWebResourceResponse shouldInterceptLoadRequest(XWalkView view, XWalkWebResourceRequest request) {
Map<String, String> headers = request.getRequestHeaders();
headers.put("Accept-Language", "ru,en-US;q=0.8,en;q=0.6");
Request okHttpRequest = new Request.Builder()
.url(request.getUrl().toString())
.headers(Headers.of(headers))
.build();
Response okHttpResponse = null;
try {
okHttpResponse = client.newCall(okHttpRequest).execute();
} catch (IOException e) {
e.printStackTrace();
}
if (okHttpResponse == null) {
return null;
}
XWalkWebResourceResponse resourceResponse = createXWalkWebResourceResponse(
okHttpResponse.body().contentType().toString().split(";")[0],
okHttpResponse.body().contentType().charset().name(),
okHttpResponse.body().byteStream(),
okHttpResponse.code(),
okHttpResponse.message(),
toRegularMap(okHttpResponse.headers().toMultimap()));
return resourceResponse;
}
private Map<String, String> toRegularMap(Map<String, List<String>> multimap) {
Map<String, String> resultMap = new HashMap<>();
for (Entry<String, List<String>> entry : multimap.entrySet()) {
resultMap.put(entry.getKey(), TextUtils.join(",", entry.getValue()));
}
return resultMap;
}
}