Android WebView 응용 인터페이스 개발 강좌
1.WebView 웹 페이지 탐색(온라인 URL 불 러 오기)
WebView 는 브 라 우 저 작업 을 수행 하 는 많은 방법 을 제공 합 니 다.자주 사용 하 는 방법 은 다음 과 같 습 니 다.
void goBack():뒤로
void goForward():전진.
void goBackOrForward(int step):step 는 전진 을 나타 내 고 step 는 마이너스 로 후퇴 를 나타 낸다.
void loadUrl(String url):지정 한 URL 에 해당 하 는 웹 페이지 를 불 러 옵 니 다.
boolean zoomIn():웹 페이지 확대.
boolean zoomOut():웹 페이지 축소.
인 스 턴 스:미니 브 라 우 저
이 인 스 턴 스 는 두 개의 화면 을 포함 하고 첫 번 째 화면 은 인터넷 주 소 를 입력 하고 인터넷 주 소 를 여 는 것 을 포함 하 며 두 번 째 화면 은 하나의 WebView 를 포함 하여 첫 번 째 화면 에서 입력 한 URL 에 대응 하 는 화면 을 표시 합 니 다.프로그램 코드 는 다음 과 같 습 니 다:
첫 번 째 인터페이스
public class MainActivity extends AppCompatActivity {
private EditText mEditUrl;
private Button mBtnOpen;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditUrl = (EditText) findViewById(R.id.edit_url);
mBtnOpen = (Button) findViewById(R.id.btn_open);
mBtnOpen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, WebViewActivity.class);
String url = mEditUrl.getText().toString();
intent.putExtra("url", url);
startActivity(intent);
}
});
}
}
이 인 터 페 이 스 는 매우 간단 합 니 다.하나의 입력 상자,하나의 단 추 는 각각 인터넷 주 소 를 입력 하고 WebView 를 여 는 데 사 용 됩 니 다.두 번 째 인터페이스
public class WebViewActivity extends AppCompatActivity {
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web_view);
mWebView = (WebView) findViewById(R.id.web_view);
Intent intent = getIntent();
String url = intent.getStringExtra("url");
mWebView.loadUrl(url);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebViewClient(new WebViewClient(){
});
}
@Override
public void onBackPressed() {
if (mWebView != null && mWebView.canGoBack()){
mWebView.goBack();
}else {
super.onBackPressed();
}
}
}
이 코드 는 WebView 의 loadUrl(String url)방법 으로 이 URL 에 대응 하 는 웹 페이지 를 불 러 오고 표시 하 며 자 바스 크 립 트 를 지원 하도록 설정 합 니 다.웹 뷰 를 열 때 브 라 우 저 로 이동 하면 웹 뷰 클 라 이언 트 설정 을 통 해 웹 뷰 에 표 시 됩 니 다.onBackPressed()방법 을 다시 썼 습 니 다.WebView 가 비어 있 지 않 고 WebView 가 되 돌 릴 수 있 을 때 이전 WebView 인터페이스 로 돌아 가 는 것 이 아니 라 이전 Activity 로 돌아 갈 수 있 습 니 다.
이 앱 은 인터넷 에 접근 해 야 하기 때문에 AndroidManifest.xml 에 설정 해 야 합 니 다.
<uses-permission android:name="android.permission.INTERNET"/>
이 실례 의 효과 도 는 다음 과 같다.2.WebView 로 HTML 코드 불 러 오기
WebView 는 HTML 코드 를 불 러 오고 표시 하 는 데 사용 할 수 있 는 loadData(String data,String mimeType,String encoding)방법 을 제공 합 니 다.
WebView 는 loadDataWithBaseURL(String baseUrl,String data,String mimeType,String encoding,String historyUrl)방법 도 제공 했다.이 방법 은 loadData(String data,String mimeType,String encoding)방법의 증강 판 으로 오류 가 발생 하지 않 는 다.이 방법의 몇 가지 매개 변수 설명:
data:불 러 올 HTML 코드 를 지정 합 니 다.
mimeType:HTML 의 MIME 형식 을 지정 하고 HTML 에 대해 text/html 로 지정 할 수 있 습 니 다.
encoding:HTML 코드 인 코딩 에 사용 할 문자 집합 을 지정 합 니 다.예 를 들 어 GBK 로 지정 합 니 다.
WebView 로 딩 HTML 코드:
public class MainActivity extends AppCompatActivity {
private WebView mShowWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mShowWebView = (WebView) findViewById(R.id.show_web_view);
StringBuilder sb = new StringBuilder();
// HTML
sb.append("<html>");
sb.append("<head>");
sb.append("<title> </title>");
sb.append("</head>");
sb.append("<body>");
sb.append("<h2> <a href = \"http:www.baicu.com\">" + " </a></h2>");
sb.append("</body>");
sb.append("</html");
// HTML
mShowWebView.loadDataWithBaseURL(null, sb.toString(), "text/html", "utf-8", null);
}
}
이 인 스 턴 스 실행 효 과 는 다음 과 같 습 니 다.3.WebView 의 JavaScript 호출 Android 방법
WebView 에서 Android 방법 을 호출 하려 면 세 단계 가 필요 합 니 다.
WebView 와 연 결 된 WebSettings 의 setJavaScriptEnabled(true)를 호출 하여 JavaScript 호출 기능 을 사용 합 니 다.
WebView 의 addJavaScriptInterface(Object object,String name)방법 을 호출 하여 object 대상 을 JavaScript 대상 에 노출 합 니 다.
JavaScript 스 크 립 트 에서 방금 노출 된 name 대상 을 통 해 Android 방법 을 호출 합 니 다.
자바 스 크 립 트 에서 안 드 로 이 드 방법 을 호출 하 는 인 스 턴 스 를 작성 합 니 다.이 인 스 턴 스 인터페이스 에는 HTML 페이지 를 표시 하 는 웹 뷰 구성 요소 가 포함 되 어 있 습 니 다.Activity 코드 는 다음 과 같 습 니 다.
public class MainActivity extends AppCompatActivity {
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = (WebView) findViewById(R.id.web_view);
// file assets HTML
mWebView.loadUrl("file:///android_asset/test.html");
// WebView
WebSettings webSettings = mWebView.getSettings();
// JavaScript
webSettings.setJavaScriptEnabled(true);
// MyObject JavaScript
mWebView.addJavascriptInterface(new MyObject(this), "myObj");
}
}
위 코드 에 서 는 자 바스 크 립 트 가 안 드 로 이 드 방법 을 호출 하 는 기능 을 켜 고 안 드 로 이 드 응용 프로그램의 마 이 오 브 젝 트 대상 을 자 바스 크 립 트 스 크 립 트 에 노출 시 켜 자 바스 크 립 트 의 마 이 오 브 제 라 는 대상 으로 노출 시 켰 다.MyObject 코드 는 다음 과 같 습 니 다:
public class MyObject {
private Context context;
public MyObject(Context context) {
this.context = context;
}
// JavaScript
@JavascriptInterface
public void showToast(String name) {
Toast.makeText(context, name + ", !", Toast.LENGTH_SHORT).show();
}
// JavaScript
@JavascriptInterface
public void showList() {
//
new AlertDialog.Builder(context)
.setTitle(" ")
.setIcon(R.mipmap.ic_launcher)
.setItems(new String[]{"Head First Android", "Head First Java", "Thinking in Java"}, null)
.setPositiveButton(" ", null)
.create()
.show();
}
}
MyObject 에는 showToast()와 showList()방법 두 가지 방법 이 포함 되 어 있 으 며,이 두 가지 방법 은@JavascriptInterface 수식 을 사용 하여 이 두 가지 방법 이 JavaScript 스 크 립 트 에 노출 되 어 JavaScript 스 크 립 트 가 my Obj 를 통 해 이 두 가지 방법 을 호출 할 수 있 도록 합 니 다.HTML 페이지 코드 는 다음 과 같 습 니 다.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title> Js Android</title>
</head>
<body>
<!-- myObj Android -->
<input type="button" value=" "
onclick="myObj.showToast('Android');"/>
<input type="button" value=" "
onclick="myObj.showList();"/>
</body>
</html>
사용자 가 페이지 의 두 단 추 를 누 르 면 이 페이지 의 자바 스 크 립 트 스 크 립 트 는 my Obj 를 통 해 안 드 로 이 드 방법 을 호출 합 니 다.이 인 스 턴 스 를 실행 하려 면 첫 번 째 단 추 를 누 르 십시오.효과 도 는 다음 과 같 습 니 다.
두 번 째 단 추 를 누 르 면 효과 도 는 다음 과 같 습 니 다.
위 에서 말 한 것 은 소 편 이 소개 한 안 드 로 이 드 웹 뷰 애플 리 케 이 션 인터페이스 개발 튜 토리 얼 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.