WebView 기본 응용프로그램 예제 - Android가 WebView를 사용하여 응용 프로그램 내부에서 웹 페이지를 엽니다.

2367 단어 Android기능 예
최근에 WebView를 사용하여 응용 프로그램 내부에 URL을 불러와서 웹 페이지를 보여 줍니다. 간단한 예시를 붙입니다.
일반 응용 프로그램에서 웹 페이지만 보여주면 복잡한 처리 논리가 필요하지 않지만 초보자가 하는 과정에서 이런 문제가 발생할 수 있다. (소는 무시할 수 없다)
1. 웹뷰를 호출합니다.loadUrl () 방법은 시스템 브라우저를 호출합니다.
2. 리턴 키를 누르면 웹 페이지를 여는 상급자가 아닌 인터페이스를 종료합니다.
사실 웹 페이지만 간단하게 보여주면
1. WebView에 자신이 정의한 WebViewClient를 설정합니다.
2. WebViewClient()의 shouldOverrideUrlLoading 방법을 덮어씁니다.
이로써 첫 번째 문제는 휴대전화 자체 브라우저를 호출하지 않고 앱 내부에서 링크를 열어 보여주는 것으로 해결됐다.
3. Activity onKeydown 방법을 덮어쓰고 웹 페이지가 이전 페이지로 돌아갈 수 있는지 판단하며 이전 페이지로 돌아갈 수 없으면 Activity 복귀 키 논리를 실행한다.
이 세 편을 완성하고 간단하게 웹뷰를 사용하면 이미 실현할 수 있다.만약 더욱 복잡한 처리가 필요하다면, 예를 들어 js 코드를 실행하여 휴대전화나 다른 고급 기능을 호출하려면 더욱 깊이 있게 연구해 주십시오.
4. 사용 과정에서 일부 웹 페이지가 열리지 않는 문제가 발생한 후에 웹 뷰가 js 지원을 켜지 않았거나 캐시를 켜지 않아서 일어난 것을 발견했다.
이 몇 줄의 코드를 추가하면 대부분의 웹 페이지를 보여줄 수 있다.
		//    localStorage
		webView.getSettings().setDomStorageEnabled(true);
		//     javascript
		webView.getSettings().setJavaScriptEnabled(true);
		//     
		webView.getSettings().setAppCacheEnabled(true);
		//       
		webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);

잠시 이렇게 많이 썼다가 나중에 발견하면 다시 완벽하게 갱신하겠습니다.
위 코드:
public class PublicWebViewActivity extends BaseActivity
{
	private WebView webView;


	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_public_webview);
		webView = (WebView) findViewById(R.id.webview);
		//    localStorage
		webView.getSettings().setDomStorageEnabled(true);
		//     javascript
		webView.getSettings().setJavaScriptEnabled(true);
		//     
		webView.getSettings().setAppCacheEnabled(true);
		//       
		webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
		//      WebViewClient
		webView.setWebViewClient(new WebViewClient()
		{
			//  shouldOverrideUrlLoading   
			@Override
			public boolean shouldOverrideUrlLoading(WebView view, String url)
			{
				view.loadUrl(url);
				return true;
			}
		});
		webView.loadUrl(url);
	}


	//   onKeydown     WebView          
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event)
	{
		if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack())
		{
			webView.goBack();//        
			return true;
		}
		return super.onKeyDown(keyCode, event);
	}
}

좋은 웹페이지 즐겨찾기