안드로이드 webview alert

(webview onJsAlert 함수)



안드로이드 웹뷰에서 alert 구문이 있을 때,

alert문을 뭔가 어설프게 표현되는 바꾸는 부분

설정해주면 좋을 것 같습니다.



webViewMain = (WebView) findViewById(R.id.WebViewMainActivityWebView);
webViewMain.setWebChromeClient(new WebChromeClient(){
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result){
final JsResult finalRes = result;
new AlertDialog.Builder(view.getContext())
.setMessage(message)
.setPositiveButton(android.R.string.ok,
new AlertDialog.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
finalRes.confirm();
}
})
.setNegativeButton(android.R.string.cancel,
new AlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
finalRes.cancel();
}
})
.create()
.show();
return true;
}
});





결과화면



블로그 이미지

미나미나미

,

안드로이드 웹뷰(WebView) 로컬 html 파일 열기



1. assets/www 을 만들어서 html 파일 넣기 


주황색 테두리 안에 넣어주세요.




2. loadUrl로 로컬 파일 불러오기


# 안드로이드 웹뷰 테스트하기 참고하세요.

 http://minaminaworld.tistory.com/84

mWebView = (WebView) findViewById(R.id.webView);
mWebView.loadUrl("file:///android_asset/www/test.html");


블로그 이미지

미나미나미

,

안드로이드(android) webview 테스트하기


안드로이드에서 webview를 

테스트하는 방법을 

기록합니다.



1. AndroidManifest.xml에 

internet 퍼미션과 hardwareAccelerated : true 해준다.



빨간색 테두리 부분들만 건들리면 됩니다.





2. activity_main.xml의 WebView을 구현하기


 




3. MainActivity.java(기존 생성된 자바 파일)과 

WebSetting.java(만든 자바 파일)


MainActivity.java(기존 생성된 자바 파일)




WebSetting.java(만든 자바 파일)


import android.annotation.TargetApi;
import android.os.Build;
import android.webkit.PermissionRequest;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class WebSetting extends WebViewClient {
public WebView webSetting(WebView webView){

WebView webView1 = webView;

WebSettings webSettings = webView1.getSettings();

webSettings.setJavaScriptEnabled(true);
webSettings.setLoadsImagesAutomatically(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setUseWideViewPort(true);
webSettings.setSafeBrowsingEnabled(false);
webSettings.setGeolocationEnabled(true);
webSettings.setDomStorageEnabled(true);
/*
필요한 설정은 참고
setJavaScriptEnabled(true);
// javascript를 실행할 수 있도록 설정
setJavaScriptCanOpenWindowsAutomatically (true);
// javascript가 window.open()을 사용할 수 있도록 설정
setBuiltInZoomControls(false);
// 안드로이드에서 제공하는 줌 아이콘을 사용할 수 있도록 설정
setPluginState(WebSettings.PluginState.ON_DEMAND);
// 플러그인을 사용할 수 있도록 설정
setSupportMultipleWindows(false);
// 여러개의 윈도우를 사용할 수 있도록 설정
setSupportZoom(false);
// 확대,축소 기능을 사용할 수 있도록 설정
setBlockNetworkImage(false);
// 네트워크의 이미지의 리소스를 로드하지않음
setLoadsImagesAutomatically(true);
// 웹뷰가 앱에 등록되어 있는 이미지 리소스를 자동으로 로드하도록 설정
setUseWideViewPort(true);
// wide viewport를 사용하도록 설정
setCacheMode(WebSettings.LOAD_NO_CACHE);
// 웹뷰가 캐시를 사용하지 않도록 설정
*/
//webView1.setWebViewClient(new SslWebViewConnect());
//ssl 인증이 없는 경우 해결을 위한 부분
// webView1.setWebChromeClient(new WebChromeClient() {
// @TargetApi(Build.VERSION_CODES.LOLLIPOP)
// @Override
// public void onPermissionRequest(final PermissionRequest request) {
// request.grant(request.getResources());
// }
// });
return webView1;
}
}


블로그 이미지

미나미나미

,