Android WebView-應用內嵌入瀏覽器
阿新 • • 發佈:2019-01-23
移動應用開發,web app、Native app的討論已經很久了,純粹的web app還很少,多少能見到Native + web混合的app,混合的app是在Native app中寫一個瀏覽器載入 web,說瀏覽器可能有點大了,簡單一點就是Native app中使用了webview。webview主要用途是用來渲染網頁。由於於良好的封裝,WebView遮蔽了底層webkit複雜的細節,應用程式只需要寥寥幾行程式碼,就可以為應用程式增加HTML支援,為混合 app開發提供了強力支援。
WebView在android.webkit包下,這個包還包含、WebSettings WebViewClient、WebChromeClient輔助類。WebViewClient是輔助WebView處理各種通知、請求事件,WebChromeClient是輔助WebView處理Javascript的對話方塊,網站圖示,網站title,載入進度等。WebSettings管理WebView的設定狀態。該物件可以通過WebView.getSettings()方法獲得。看下面的例子:
webView = (WebView) findViewById(R.id.webview); webView.setWebViewClient(new WebViewClient() { // Load opened URL in the application instead of standard browser // application public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); webView.setWebChromeClient(new WebChromeClient() { // Set progress bar during loading public void onProgressChanged(WebView view, int progress) { BrowserActivity.this.setProgress(progress * 100); } }); // Enable some feature like Javascript and pinch zoom WebSettings websettings = webView.getSettings(); websettings.setJavaScriptEnabled(true); // Warning! You can have XSS vulnerabilities! websettings.setBuiltInZoomControls(true);