php webview,Android:控件WebView显示网页 – tinyphp – 博客园
WebView可以使得網頁輕松的內嵌到app里,還可以直接跟js相互調用。
webview有兩個方法:setWebChromeClient 和 setWebClient
setWebClient:主要處理解析,渲染網頁等瀏覽器做的事情
setWebChromeClient:輔助WebView處理Javascript的對話框,網站圖標,網站title,加載進度等
WebViewClient就是幫助WebView處理各種通知、請求事件的。
在AndroidManifest.xml設置訪問網絡權限:
控件:
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:id=”@+id/webView”
/>
用途一:加載本地/Web資源
example.html 存放在assets文件夾內
調用WebView的loadUrl()方法,
加載本地資源
webView = (WebView) findViewById(R.id.webView);
webView.loadUrl(“file:///android_asset/example.html”);
加載web資源:
webView = (WebView) findViewById(R.id.webView);
webView.loadUrl(“http://baidu.com”);
用途二:在程序內打開網頁
創建一個自己的WebViewClient,通過setWebViewClient關聯
package com.example.testopen;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.webkit.WebView;
importandroid.webkit.WebViewClient;
public class MainActivity extendsActivity {
privateWebView webView;
@Override
protected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
init();
}
private voidinit(){
webView =(WebView) findViewById(R.id.webView);
//WebView加載web資源
webView.loadUrl(“http://baidu.com”);
//覆蓋WebView默認使用第三方或系統默認瀏覽器打開網頁的行為,使網頁用WebView打開
webView.setWebViewClient(newWebViewClient(){
@Override
public booleanshouldOverrideUrlLoading(WebView view, String url) {
//TODO Auto-generated method stub
//返回值是true的時候控制去WebView打開,為false調用系統瀏覽器或第三方瀏覽器
view.loadUrl(url);
return true;
}
});
}
}
用途三:
如果訪問的頁面中有Javascript,則webview必須設置支持Javascript
//啟用支持javascript
WebSettings settings =webView.getSettings();
settings.setJavaScriptEnabled(true);
用途四:
如果希望瀏覽的網頁后退而不是退出瀏覽器,需要WebView覆蓋URL加載,讓它自動生成歷史訪問記錄,那樣就可以通過前進或后退訪問已訪問過的站點。
//改寫物理按鍵——返回的邏輯
@Override
public boolean onKeyDown(intkeyCode, KeyEvent event) {
//TODO Auto-generated method stub
if(keyCode==KeyEvent.KEYCODE_BACK)
{
if(webView.canGoBack())
{
webView.goBack();//返回上一頁面
return true;
}
else
{
System.exit(0);//退出程序
}
}
return super.onKeyDown(keyCode, event);
}
用途五:判斷頁面加載過程
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, intnewProgress) {
//TODO Auto-generated method stub
if (newProgress == 100) {
//網頁加載完成
} else{
//加載中
}
}
});
用途六:緩存的使用
優先使用緩存
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
不使用緩存:
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
總結
以上是生活随笔為你收集整理的php webview,Android:控件WebView显示网页 – tinyphp – 博客园的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 使用jar_Java 使用JA
- 下一篇: php保存流文件到本地,php下载保存文