Voici mon code pour que:Mon webview se décompose en version jelly bean et kitkat, mais fonctionne très bien en sucette et en haut. Comment puis-je le réparer pour le jelly bean et le kitkat?
public void mywebview(){
try {
webview.setBackgroundColor(0);
webview.getSettings().setJavaScriptEnabled(true);
webview.addJavascriptInterface(new MyJavaScriptInterface(), "MYOBJECT");
webview.getSettings().setAllowUniversalAccessFromFileURLs(true);
webview.getSettings().setUseWideViewPort(true);
webview.getSettings().setLoadWithOverviewMode(true);
webview.getSettings().setBuiltInZoomControls(true);
webview.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webview.getSettings().setAllowFileAccess(true);
webview.canScrollHorizontally(1);
webview.setInitialScale(1);
webview.getSettings().setDefaultFontSize(2);
webview.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
webview.setHorizontalScrollBarEnabled(true);
webview.setInitialScale(1);
return false;
}
});
webview.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(view.getContext(), "Authentication Error", Toast.LENGTH_LONG).show();
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setCookie(USERNAME, PASSWORD);
super.onReceivedError(view, errorCode, description, failingUrl);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
}
public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) {
}
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
SharedPreferencesManager mgr = SharedPreferencesManager.getInstance();
StringBuilder stringBuilder = new StringBuilder();
DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(URL);
try {
HttpResponse response = client.execute(httpGet);
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode();
if (statusCode == 200) {
}
} catch (Exception e) {
}
CookieStore cookieStore = mgr.getCookieStore();
Cookie cookie = cookieStore.getCookies().get(1);
CookieManager cookieMgr = CookieManager.getInstance();
cookieMgr.setCookie(url, cookie.getName() + "=" + cookie.getValue());
CookieSyncManager.getInstance().sync();
return super.shouldInterceptRequest(view, url);
}
});
webCookieManager = CookieManager.getInstance();
webCookieManager.setAcceptCookie(true);
CookieStore cookieStore = mgr.getCookieStore();
Cookie cookie = cookieStore.getCookies().get(1);
webCookieManager.setCookie(URL, cookie.getName() + "=" + cookie.getValue() + ";");
CookieSyncManager.getInstance().sync();
webview.loadUrl(URL);
} catch (Exception e) {
e.printStackTrace();
}
}
Il semble que webresourceresponse est compatible avec uniquement avec la version de sucettes et au-dessus. Y a-t-il un moyen de le réparer pour travailler avec des versions inférieures, comme jelly bean et kitkat? Aussi, par "mess", je veux dire qu'il regarde tous alignés verticalement empilés ensemble dans une vue, contrairement à la version lollipop + où la vue semble décemment organisé comme prévu. Voici mon xml pour le même:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myholder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000"
>
<WebView
android:id="@+id/my_webview"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</RelativeLayout>
Comment puis-je faire cela? cet exemple est trop vague –