1. 程式人生 > >【Android】簡單實現使用WebView元件實現在App內開啟web

【Android】簡單實現使用WebView元件實現在App內開啟web

關於WebView元件

如何實現在App內嵌web

在新建的android專案裡,如果要實現內嵌Web,一定要在AndroidManifest.xml設定訪問網路許可權:
<uses-permission android:name="android.permission.INTERNET"/>

之後就是直接修改layout檔案和activity:
main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" >
<!--顯示網頁區域--> <WebView android:id="@+id/webView" android:layout_below="@+id/text_endLoading" android:layout_width="fill_parent" android:layout_height
="fill_parent" android:layout_marginTop="10dp" />
</LinearLayout>

activity:

import android.app.Activity;
import android.net.http.SslError;
import android.os.Bundle;
import android.webkit.SslErrorHandler;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public
class ForbiddenCityActivity extends Activity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } private void init(){ webView = (WebView) findViewById(R.id.webView); //需要載入的網頁的url webView.loadUrl("...."); WebSettings settings = webView.getSettings(); // 如果訪問的頁面中要與Javascript互動,則webview必須設定支援Javascript settings.setJavaScriptEnabled(true); webView.setWebViewClient(new WebViewClient(){ public boolean shouldOverrideUrlLoading(WebView view, String url){ view.loadUrl(url); return true; } }); webView.setWebViewClient(new WebViewClient() { @Override public void onReceivedSslError(WebView view,SslErrorHandler handler, SslError error) { //等待證書響應 handler.proceed(); } }); } }

使用HTTPS

由於webView預設是不處理https請求的,所以如果使用的連結是HTTPS的話還要新增以下內容:

webView.setWebViewClient(new WebViewClient() {
         @Override 
      public void onReceivedSslError(WebView view,SslErrorHandler handler, SslError error) {
         handler.proceed();
      } 
   });