日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

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

WebVeiw 的基本使用

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

今天簡單那的了解了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!

讓進度條消失。


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 免费国产 | 91精品国产综合久久久久久久久久 | 国内精品久久久久久中文字幕 | 日韩人成 | 国产成人免费av一区二区午夜 | 久久国产精品偷 | 九九九九九九精品 | 欧美1区2区3区 | 这里只有久久精品视频 | 国产精品久久久久久久久久大牛 | 国产精品视频一区二区三区不卡 | 国产97人人超碰caoprom | 亚洲精品在线免费 | 午夜性生活片 | 亚洲免费二区 | 99re视频| www.888www看片 | 在线精品亚洲欧美日韩国产 | 国产精品久久久久久久久久久久久 | 99精品视频在线观看免费 | 二区三区在线观看 | 日韩综合一区 | 欧美成人性生活视频 | 日韩欧美亚洲国产精品字幕久久久 | 国产精品久久久久久一区二区三区 | 国产精品久久国产三级国电话系列 | 色一区二区| 亚洲视频免费在线 | 久久黄视频 | 成人免费视频网址 | 91免费视频观看 | 亚洲精品免费在线观看 | 久久中国精品 | 国产精品久久久久久久久免费看 | 国产免费专区 | 日本三级网址 | 日韩欧美精品一区二区三区经典 | 欧美色婷 | 精品综合 | 国产精品久久久久一区二区三区 | 亚洲一区二区三区免费 |