多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > WebVeiw 的基本使用

WebVeiw 的基本使用

來源:程序員人生   發布時間:2014-12-13 09:15:59 閱讀次數:2755次

今天簡單那的了解了1下WebView 

大致分為兩種情況:  1  在fragment 中     2  在Activity

1 在Fragment中的 WebView Client 點擊回退是個難點


解決回退的方法Code:

原理很簡單: 就是監聽 Fragment 當前的事件, 但按下的時候,看是否是回退鍵,WebView是不是可以回退?

可以的話,直接回退!

//設置 WebView 內部的回退跳轉: webView.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(event.getAction() == KeyEvent.ACTION_DOWN) { if(keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) { webView.goBack(); return true; } } return false; } });



------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



package com.cim.pd.ui.fragment; import android.app.Activity; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnKeyListener; import android.view.ViewGroup; import android.webkit.WebView; import android.widget.ImageView; import android.widget.ProgressBar; import com.cim.pd.R; import com.cim.pd.ui.MainActivity; import com.cim.pd.view.MyWebViewClient; /** * 菜單欄: * 購買希盟智能裝備頁面 * * @author Hades * @Time 2014⑴2⑷ * */ public class BuyDeviceFragment extends Fragment { public static final String ARG = "BuyDeviceFragment"; private MainActivity mainActivity; /** * 購買裝備的WebView * */ private WebView webView; /** * 進度條 * */ private ProgressBar progressBar; @Override public void onAttach(Activity activity) { super.onAttach(activity); mainActivity = (MainActivity) activity; } @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { // TODO Auto-generated method stub View view = inflater.inflate(R.layout.fragment_buy_device, container, false); initTop(view); initWebView(view); return view; } /** * 初始化頂部的信息 * * @author Hades * @Time 2014⑴2⑷ * @param view */ private void initTop(View view) { progressBar = (ProgressBar) view.findViewById(R.id.buy_progressBar); progressBar.setVisibility(View.VISIBLE); ImageView drawerView = (ImageView)view.findViewById(R.id.drawer_menu); //設置監聽器: drawerView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub mainActivity.toggle(); } }); } /** * 初始化頁面信息: * * @author Hades * @Time 2014⑴2⑷ * @param view */ private void initWebView(View view) { webView = (WebView)view.findViewById(R.id.buy_webview); webView.getSettings().setJavaScriptEnabled(true); String url = "http://m.cim120.com/"; //第1步: 直接加載網址 webView.loadUrl(url); //第2步: 設置頁面在當前的WebView 中跳轉! MyWebViewClient client = new MyWebViewClient(mainActivity,progressBar); webView.setWebViewClient(client); //設置 WebView 內部的回退跳轉: webView.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(event.getAction() == KeyEvent.ACTION_DOWN) { if(keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) { webView.goBack(); return true; } } } }); } @Override public void onDestroyView() { // TODO Auto-generated method stub super.onDestroyView(); } }


2  Activity 

/** * 初始化組件 * * @Hades * @Dec 3, 2014 * @11:35:35 PM */ private void init() { webView = (WebView) this.findViewById(R.id.my_buy_webview); webView.getSettings().setJavaScriptEnabled(true); String url = "http://m.cim120.com/"; //第1種方式: 直接加載 webView.loadUrl(url); //第2種: 創建自己的 閱讀器!搜友的數據信息在里面顯示! MyWebViewClient client = new MyWebViewClient(BuyDeviceActivity.this,progressBar); webView.setWebViewClient(client); } /** * 設置WebViewClient 內部的回退 */ @Override public void onBackPressed() { // TODO Auto-generated method stub if(webView.canGoBack()) { webView.goBack(); }else{ finish(); } }

Activity 內部有1個監聽 回退鍵的  回調方法。

onBAckPressed;


---------------------------------------------------------------------------------------------------------------------------------

    webView 中的 webView.getSettings().setJavaScriptEnabled(true);


    這是添加 Js 的支持, 如果沒有這句話的話,就會致使 webView 加載的頁面中,
    JS的殊效,沒法顯示!


-------------------------------------------------------------------------------------------------------------------------------

今天有的小大意:

跳轉BuyDeviceActivity的時候


    點擊的時候, 怎樣還保存數據了?
    Error:
    12-04 13:51:19.778: E/CrashHandler(19281): Caused by: libcore.io.ErrnoException: write failed: ENOSPC (No space left on device)


    緣由是由于: 自己太大意了! 沒有添加  在 Application  中注冊 Activity!


------------------------------------------------------------------------------------------------------------------------

WebViewClient是  用來顯示WebView  的內容的數據;

如果沒有他的話,當你點擊啊WebView內部的內容的時候,就會默許的開啟1個Intent去調用本地的

閱讀器的App。

所以 必須自定義 WebViewClient,   shouldOverrideUrlLoading 是必須重寫的。


package com.example.webview; import android.app.Activity; import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.ProgressBar; public class MyWebViewClient extends WebViewClient { private ProgressBar progressBar; public MyWebViewClient() { // TODO Auto-generated constructor stub } public MyWebViewClient(Activity context) { // TODO Auto-generated constructor stub super(); } public MyWebViewClient(Activity context,ProgressBar progressBar) { // TODO Auto-generated constructor stub super(); this.progressBar = progressBar; } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // TODO Auto-generated method stub view.loadUrl(url); return true; } /** * WebView加載終了數據 * */ @Override public void onPageFinished(WebView view, String url) { // TODO Auto-generated method stub // super.onPageFinished(view, url); progressBar.setVisibility(View.GONE); } }

onPageFinished()是在  WebView加載成功以后調用的,

這里 可以設置 進度條為 gone!

讓進度條消失。


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲精品福利在线 | 一区二区三区鲁丝不卡麻豆 | 国产一级做a爱片久久片 | 精品视频在线观看免费 | 中文字幕资源在线 | 亚洲天堂图片 | 精品国产免费人成网站 | 色欧美在线视频 | 色婷婷伊人 | 国产99精品 | 综合亚洲色图 | 国产欧美日韩综合精品无毒 | 最近中文字幕更新免费 | 国产精品成人亚洲 | 国产精品久久久久免费 | 亚洲最大视频网站 | 最近中文免费高清字幕 | 91精品国产福利在线观看性色 | 亚洲人成网址在线观看 | 一本之道免费视频 | 久久国产欧美日韩高清专区 | 中文字幕视频一区二区 | 欧美性黑人极品 hd 欧美性黑人极品hd 欧美性活生活视频 | 国产精品免费aⅴ片在线观看 | 日韩在线高清视频 | 久久精品一区二区 | 亚洲欧美偷拍另类 | 久久久国产高清 | 韩日一级视频 | 精品国产免费福利片 | 综合久久久久久久 | 免费看www| 亚洲噜噜噜噜噜影院在线播放 | 波多野结衣与公中出中文字幕 | 久草视频福利在线观看 | 欧美亚洲h在线一区二区 | 久久一本精品久久精品66 | 欧美性受xxxx黑人xyx | 高清在线观看视频 | 国产精品成人久久久久久久 | 日本久本草精品 |