BrowserDemo-브라우저에 HTML 웹페이지 출력

CODEDRAGON Development/Android

반응형

브라우저에 HTML 웹페이지 출력

   

   

강의 내용

activity_main.xml

RelativeLayout 변경

Graphical Layout > Composite-WebView추가

   

  

AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET"/>

/asset/hello.html

HTML문서 작성

MainActivity.java

//URL 링크

>확인

//HTML 직접 생성 (로컬파일 사용)

>확인

//HTML 파일 사용 (asset폴더의 로컬파일 사용)

>확인

//자바 스크립트 허용

- 자바 스크립의 alert 대체 코드 작성

>확인

   

   

assets폴더에 .html 생성방법

   

  

  

   

출력 결과

소스 코드

//URL 링크

browser.loadUrl("http://m.naver.com");

   

출처: <https://github.com/10zeroone/study_Android/blob/master/50BrowserDemo/src/kr/adroid/browser/MainActivity.java>

   

   

   

소스 코드

//HTML 직접 생성

String msg ="<html><body>Hellow Android World!!!</body></html>";                

browser.loadDataWithBaseURL(null, msg, "text/html", "UTF-8", null);

   

 

   

   

   

소스 코드

자바 스크립트 허용 전

//assets HTML파일 이용

browser.loadUrl("file:///android_asset/hello.html");

   

 

   

   

   

소스 코드

public class MainActivity extends Activity {

WebView browser;        

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

browser =(WebView)findViewById(R.id.wvWeb);

//assets HTML파일 이용

browser.loadUrl("file:///android_asset/hello.html");

//자바 스크립트 허용

browser.getSettings().setJavaScriptEnabled(true);                

MyWebChromeClient myWebChromeClient = new MyWebChromeClient();                

//브라우저에 등록

browser.setWebChromeClient(myWebChromeClient);

}

//자바 스크립트의 alert 대체 코드 작성

//자바 스크립트의 alert 경고창을 대체하는 안드로이드 경고창 구현

private class MyWebChromeClient extends WebChromeClient{

@Override

public boolean onJsAlert(WebView view, String url, String message, JsResult result){

//message        : '경고창'

new AlertDialog.Builder(MainActivity.this).setTitle("경고").setCancelable(false).setNeutralButton("확인", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

   

}

}).show();

result.confirm();

   

return true;

}

}

}

   

 

   

   

   

반응형