WebView 가 URL 을 통 해 H5 인 터 페 이 스 를 불 러 오 는 공백 문 제 를 해결 합 니 다.

4865 단어 WebViewURLH5공백
1.권한 문제:설정 파일 에 네트워크 권한 을 설정 해 야 합 니 다.

2.기본 설정 문제
WebSettings webSettings = webView.getSettings(); //크기 조정 을 지원 합 니 다.기본 값 은 true 입 니 다.
.setUseWideViewPort(true); // 화면 크기 로 크기 조정 웹 설정
.setLoadWithOverviewMode(true); //기본 인 코딩 설정
webSettings .setDefaultTextEncodingName("utf-8"); ////그림 자동 불 러 오기 설정
webSettings .setLoadsImagesAutomatically(true);
.settings.setJavaScriptEnabled(true);// JS 스 크 립 트 실행 가능 설정
.settings.setSupportZoom(false);// 웹 뷰 확대 설정 에 사용
.settings.setBuiltInZoomControls(false);
3.Uncaught TypeError 발생:null 이상 의 method'getItem'을 호출 할 수 없습니다.
이 줄 에 이상 이 생 겼 습 니 다.이것 은 바로 html 5 의 특성 입 니 다.로 컬 에 저 장 된 것 은 쿠키 보다 저장량 이 많 지만 이것 은 안 드 로 이 드 의 webview 에서 코드 로 시작 해 야 합 니 다.
해결 방법:웹 뷰 의 html 5 로 컬 저장 기능 을 시작 합 니 다.
webview.getSettings().setDomStorageEnabled(true);
webview.getSettings().setAppCacheMaxSize(1024*1024*8);
String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath();
webview.getSettings().setAppCachePath(appCachePath);
webview.getSettings().setAllowFileAccess(true);
webview.getSettings().setAppCacheEnabled(true);
4.getDeviceID 방법 을 호출 할 때 js 가 불 러 오지 않 아 공백 이 발생 합 니 다.
해결 방법:

webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}

@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
//          js  
if(!flag_get_deviceid){
load();
}
}

@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
}

});

private boolean flag_get_deviceid=false;
public void load(){
String key="";
String androidID="";
try{
androidID = Secure.getString(getContentResolver(),Secure.ANDROID_ID);
Log.d(TAG, "androidID:"+androidID);}catch(Exception e){
Log.e(TAG, "");
}finally{
String script=String.format("javascript:getDeviceID('"+androidID+"')");
webActDetail.evaluateJavascript(script, new ValueCallback<String>() {

@Override
public void onReceiveValue(String value) {
Log.d(TAG, "onReceiveValue value=" + value);

if(value!=null){
flag_get_deviceid=true;
}
}});
}
}
5.안 드 로 이 드 핸드폰 버 전 문제,현재 H5 화면 이 다양 해 지면 서 많은 H5 화면 이 저 버 전의 기종 에서 보 여주 지 못 하거나 스타일 이 어 지 럽 습 니 다.
해결 방법:하 나 는 낮은 버 전의 h5 인터페이스 를 재 설계 하고 다른 하 나 는 프로젝트 의 최저 버 전 을 설정 하 는 것 이다.
추가 지식:WebView-WebView 를 사용 하여 Url 목록 에 순서대로 접근
때때로,우 리 는 웹 뷰 를 사용 하여 차례대로 Url 목록 을 방문 하여 웹 페이지 를 새로 고 쳐 야 한다.
1.1 WebView 생 성
webView = (WebView) findViewById(R.id.webview);
1.2 WebView 설정 매개 변수

  //     
  webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
  //      
  // webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
  //     
  webView.clearCache(true);
  //       
  webView.clearHistory();
  //   cookies
  CookieSyncManager.createInstance(this);
  CookieSyncManager.getInstance().startSync();
  CookieManager.getInstance().removeSessionCookie();
  //         
  webView.getSettings().setSupportZoom(true);
  //         
  webView.getSettings().setBuiltInZoomControls(true);
  webView.getSettings().setJavaScriptEnabled(true);
1.3 Url 목록 가 져 오기

int index = 0;
 
String [] strList = new String[]{"https://www.jb51.net",
"https://www.jd.com","https://www.csdn.net",https://www.baidu.com};
1.4 WebView 설정 WebViewClient

//     WebViewClient
  webView.setWebViewClient(new WebViewClient() {
   @Override
   public void onPageFinished(WebView view, String url) {
    super.onPageFinished(view, url);
    index++;
    if(index>artStr.length){
 
    }else {
     webView.clearCache(true);
     webView.clearView();
     Log.i("===onPageFinished====", index + "=======");
     refreshWebpage(index);
    }
   }
  });
1.5 WebView 로 딩 Url

 public void refreshWebpage(int index) {
  String csdnStr = urlStr + artStr[index];
 
  //     url
  webView.loadUrl(csdnStr);
 }
웹 뷰 가 URL 을 통 해 H5 인 터 페 이 스 를 불 러 오 는 데 공백 이 생기 는 문 제 를 해결 한 것 은 바로 편집장 님 께 서 여러분 께 공유 해 주신 모든 내용 입 니 다.참고 해 주시 고 많은 성원 부 탁 드 리 겠 습 니 다.

좋은 웹페이지 즐겨찾기