【Android】簡單實現使用WebView元件實現在App內開啟web
阿新 • • 發佈:2019-01-26
關於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();
}
});