php webview,Android:控件WebView显示网页 – tinyphp – 博客园
WebView可以使得網(wǎng)頁(yè)輕松的內(nèi)嵌到app里,還可以直接跟js相互調(diào)用。
webview有兩個(gè)方法:setWebChromeClient 和 setWebClient
setWebClient:主要處理解析,渲染網(wǎng)頁(yè)等瀏覽器做的事情
setWebChromeClient:輔助WebView處理Javascript的對(duì)話框,網(wǎng)站圖標(biāo),網(wǎng)站title,加載進(jìn)度等
WebViewClient就是幫助WebView處理各種通知、請(qǐng)求事件的。
在AndroidManifest.xml設(shè)置訪問(wèn)網(wǎng)絡(luò)權(quán)限:
控件:
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:id=”@+id/webView”
/>
用途一:加載本地/Web資源
example.html 存放在assets文件夾內(nèi)
調(diào)用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”);
用途二:在程序內(nèi)打開(kāi)網(wǎng)頁(yè)
創(chuàng)建一個(gè)自己的WebViewClient,通過(guò)setWebViewClient關(guān)聯(lián)
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默認(rèn)使用第三方或系統(tǒng)默認(rèn)瀏覽器打開(kāi)網(wǎng)頁(yè)的行為,使網(wǎng)頁(yè)用WebView打開(kāi)
webView.setWebViewClient(newWebViewClient(){
@Override
public booleanshouldOverrideUrlLoading(WebView view, String url) {
//TODO Auto-generated method stub
//返回值是true的時(shí)候控制去WebView打開(kāi),為false調(diào)用系統(tǒng)瀏覽器或第三方瀏覽器
view.loadUrl(url);
return true;
}
});
}
}
用途三:
如果訪問(wèn)的頁(yè)面中有Javascript,則webview必須設(shè)置支持Javascript
//啟用支持javascript
WebSettings settings =webView.getSettings();
settings.setJavaScriptEnabled(true);
用途四:
如果希望瀏覽的網(wǎng)頁(yè)后退而不是退出瀏覽器,需要WebView覆蓋URL加載,讓它自動(dòng)生成歷史訪問(wèn)記錄,那樣就可以通過(guò)前進(jìn)或后退訪問(wèn)已訪問(wèn)過(guò)的站點(diǎn)。
//改寫(xiě)物理按鍵——返回的邏輯
@Override
public boolean onKeyDown(intkeyCode, KeyEvent event) {
//TODO Auto-generated method stub
if(keyCode==KeyEvent.KEYCODE_BACK)
{
if(webView.canGoBack())
{
webView.goBack();//返回上一頁(yè)面
return true;
}
else
{
System.exit(0);//退出程序
}
}
return super.onKeyDown(keyCode, event);
}
用途五:判斷頁(yè)面加載過(guò)程
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, intnewProgress) {
//TODO Auto-generated method stub
if (newProgress == 100) {
//網(wǎng)頁(yè)加載完成
} else{
//加載中
}
}
});
用途六:緩存的使用
優(yōu)先使用緩存
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
不使用緩存:
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
總結(jié)
以上是生活随笔為你收集整理的php webview,Android:控件WebView显示网页 – tinyphp – 博客园的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java 使用jar_Java 使用JA
- 下一篇: php保存流文件到本地,php下载保存文