728x90
반응형
웹브라우저를 앱 안에 넣고 싶을 때는 웹뷰를 사용한다.
1) 먼저 인터넷에 접속해야 되기 때문에 매니페스트에 인터넷 권한을 넣어준다.
<uses-permission android:name="android.permission.INTERNET"/>
2) xml에 주소입력/버튼과 webview를 추가해 준다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/address"
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/go"
android:text="이동"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
3) mainactivity.class 코드 작성
- webView 세팅하기
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
* setJavaScriptEnabled(true) : 자바스크립트가 동작할 수 있다.
- 화면에 추가된 webView에 웹사이트를 보여주기 위해 wevViewClient를 상속하여 webView에 설정해준다.
webView.setWebViewClient(new ViewClient());
private class ViewClient extends WebViewClient{
@Override
public boolean shouldOverrideUrlLoading(final WebView view, final String url) {
view.loadUrl(url);
return true;
}
}
- 웹페이지를 로딩하여 화면에 보여주기위해서는 loadUrl()를 사용
webView.loadUrl(address.getText().toString());
**goForward()/ goBack() 메서드를 이용하면 앞 뒤 페이지 이동가능
- 다음은 mainactivity.class의 전체 소스이다.
public class MainActivity extends AppCompatActivity {
EditText address;
Button go;
WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
address = (EditText) findViewById(R.id.address);
go = (Button) findViewById(R.id.go);
webView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.setWebViewClient(new ViewClient());
go.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
webView.loadUrl(address.getText().toString());
}
});
}
private class ViewClient extends WebViewClient{
@Override
public boolean shouldOverrideUrlLoading(final WebView view, final String url) {
view.loadUrl(url);
return true;
}
}
}
4) manifest 권한 설정
- 웹뷰 안에 웹사이트가 표시되게 해주는 것.
android:usesCleartextTraffic="true"
**실행 결과
728x90
반응형
'android' 카테고리의 다른 글
[j android] 어플종료 다이얼로그 창 만들기 (5) | 2019.10.22 |
---|---|
[j android] 페이지 슬라이딩(page sliding) 구현하기 (0) | 2019.10.21 |
[j android] 토스트(toast), 스낵바(snackbar), 프로그레스바(progressbar) 구현하기 (0) | 2019.10.15 |
[j android] activity, fragment 간 데이터 전송 (0) | 2019.08.26 |
[j android] 버튼 누르면 fragment 나타내기 (0) | 2019.08.23 |