swift版webview載入網頁(帶進度條)
比較簡單,直接上程式碼
import UIKit
import WebKit
import SnapKit
class CMWebVC:
UIViewController
, WKNavigationDelegate {var webUrl: String?
var webView: WKWebView =WKWebView()
var progressView:UIProgressView = UIProgressView()
var closeBtn: UIButton!
override func initVC() {
webView
webView.navigationDelegate =self
}
deinit {
webView.removeObserver(self, forKeyPath:"estimatedProgress")
webView.navigationDelegate =nil
}
override func viewDidLoad() {
super.viewDidLoad()
// webview
view.addSubview(webView)
webView.snp.makeConstraints { (make)in
make.width.height.equalToSuperview()
}
// progressview
view.addSubview(progressView)
progressView.snp.makeConstraints { (make)in
make.width.equalToSuperview
make.height.equalTo(3)
make.top.equalToSuperview()
}
progressView.tintColor =UIColor.ColorBgTheme()
progressView.isHidden =true
// load url
if webUrl !=nil {
webView.load(URLRequest(url:URL(string: webUrl!)!))
}
// shear
self.showRightItem(image:"nav_share") {
}
}
override func viewWillAppear(_ animated:Bool) {
super.viewWillAppear(animated)
self.closeButton()
}
override func viewWillDisappear(_ animated:Bool) {
self.closeBtn.removeFromSuperview()
}
func closeButton() {
if self.closeBtn ==nil {
self.closeBtn =UIButton(frame: CGRect(x:44, y: 0, width:44, height: 44))
self.closeBtn.setTitle("關閉", for: .normal)
self.closeBtn.setTitleColor(UIColor.black, for: .normal)
self.closeBtn.addAction({ (button)in
self.navigationController!.popViewController(animated:true)
})
self.navigationController?.navigationBar.addSubview(self.closeBtn)
}
}
override func observeValue(forKeyPath keyPath:String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
// 載入進度
if keyPath == "estimatedProgress" {
let newprogress = change?[.newKey]!as! Float
let oldprogress = change?[.oldKey]as? Float ??0.0
//不要讓進度條倒著走...有時候goback會出現這種情況
if newprogress < oldprogress {
return
}
if newprogress == 1 {
progressView.isHidden =true
progressView.setProgress(0, animated:false)
}
else {
progressView.isHidden =false
progressView.setProgress(newprogress, animated:true)
}
}
}
func webView(_ webView:WKWebView, didFinish navigation: WKNavigation!) {
progressView.isHidden =true
progressView.setProgress(0, animated:false)
}
func webView(_ webView:WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
progressView.isHidden =true
progressView.setProgress(0, animated:false)
}
override func navigateBack() {
if webView.canGoBack {
webView.goBack()
}
else {
super.navigateBack()
}
}
}
相關推薦
swift版webview載入網頁(帶進度條)
比較簡單,直接上程式碼 import UIKit import WebKit import SnapKit class CMWebVC: UIViewController , WKNavigationDelegate { var webUrl: S
使用WebView載入網頁並帶有進度條
WebView是載入網頁的控制元件,在使用WebView載入網頁的同時,可以顯示進度條,現在就來介紹一下。 一.在佈局中新增ProgressBar控制元件和WebView控制元件 <
使用Jquery開源外掛實現檔案上傳(帶進度條)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <
jq上傳多張圖片(帶進度條)
<!DOCTYPE html><html> <head> <meta charset="UTF-8" /> <title>xhr2</title> </head> <body>&
iOS開發swift版非同步載入網路圖片(帶快取和預設圖片)
iOS開發之swift版非同步載入網路圖片 與SDWebImage非同步載入網路圖片的功能相似,只是程式碼比較簡單,功能沒有SD的完善與強大,支援預設新增圖片,支援本地快取。 非同步載入圖片的核心程式碼如下: func setZYHWebImage(ur
完美解決Android的WebView載入失敗(404,500),顯示的自定義檢視
完美解決Android的WebView載入失敗(404,500),顯示的自定義檢視 好多朋友會在Android開發過程中遇到使用WebView載入html頁面出現404,500等錯誤頁面,也有好多人想自定義這個錯誤頁面,但是在6.0之前,大家覺得自定義錯誤頁面就不好處理了; 之前一
Android使用okhttp封裝多檔案批量下載 (帶進度條,取消下載)
在網上搜索了很多關於okhttp封裝的網路框架,唯獨沒找到完美實現了多個檔案批量下載的案例,當前使用的最多的也就是okhttp了,所以,我學習了各位大神的封裝後,自己也試著封裝了一個關於okhttp的網路請求框架,方便專案中的使用。 實現的功能基本如下:
WebView 載入資料時顯示進度條,載入完後再把進度條取消並顯示內容
轉載地址:http://blog.sina.com.cn/s/blog_7a66361301011a46.html webview 載入資料時顯示進度條有兩種. 第一種方法 這個是載入資料時顯示進度條 super.onCreate(savedInstanceState);
c#抓取網頁(帶解析js)
抓取中國銀行匯率 (phantomjs-1.9.2-windows + Selenium.WebDriver.3.8.0) 直接上程式碼 using LTITools.util; using OpenQA.Selenium; using OpenQA.Selenium.P
用canvas畫一個簡單的圓(帶進度條效果)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
【web】js新增附件功能(顯示進度條)——新增附件-demo01
使用input元素新增附件(顯示進度條) 備註:此專案沒有實現上傳附件的功能 專案成品圖: 執行的狀態: 點選上傳的狀態: 以下是專案原始碼: <!DOCTYPE html PUB
WebView載入網頁帶進度條
圖: 程式碼: package com.baofoo.mobile.wallet.common.activity; import android.app.Activity; import android.content.Context; import android
iOS開發載入網頁(webview)時的菊花(小圈)
在iOS開發中會有一種情況,就是請求載入一個網頁,有時是H5頁面,當然也是一個網頁,有時候這個網頁裡的內容很多,或者網速很慢的時候就會有一段時間是整個手機白屏,你做不了任何的操作,這樣給使用者的體驗是非常差的 在載入中,但是網頁還沒出現的的時候就會用到一個菊花來提示這個頁面
webview載入網頁新增進度條的展示
直接上程式碼 wb.loadUrl(url); wb.setBackgroundColor(0); wb.setWebChromeClient(new WebChromeCl
Fragment中載入網頁(WebView)監聽Back鍵 ,實現返回上一頁的功能
首先建立一個抽象類BackHandledFragment,該類有一個抽象方法onBackPressed(),所有BackHandledFragment的子類在onBackPressed方法中處理各自對Back事件的消費邏輯。onBackPressed返回布林值,宿主Acti
android中WebView載入網頁設定進度條
我們平時在進行安卓開發使用到webview載入網頁時,我們不能準確瞭解網頁的載入進度,因此為了提高使用者體驗,我們在webview中加入進度條顯示載入進度。 程式預覽介面: 一、主介面xml佈局檔案 <LinearLayout xmlns:android="ht
網頁導航菜單的子菜單平鋪(帶背景欄)實現
body hover 動態設置 ive 要求 解決方案 滿了 gpo 位置 - 之前給公司做的一個小型知識庫管理網站時遇到一個問題,在這裏記錄下解決的過程。 公司的美工要求首頁導航菜單 要跟他們公司的網站風格保持一致,如圖所示 (子菜單是平鋪的)
Project 2016官方版下載(帶啟用工具)
Project 2016是一款強大的專案管理軟體,支援甘特圖等等實時專案監控功能,是經理人與專案管理者的強大助手。需要注意的是Project不能從Office套件中進行安裝,需要單獨的下載與安裝,但是執行後卻又能與Office完美結合在一起。 下載連結:https://pan.
C/S模型-多程序-簡易版學生-管理系統(帶資料庫)
簡介: 【1】資料: 學生資訊:姓名name + 賬號account + 分數score 登入資訊:賬號account + 密碼password(學生、管理員) 【2】C/S模型,使用fork實現多程序互動 【3】Client: 1)登入:學生登入,管理員登陸 2)管理員:修改密
WebView載入網頁及資料
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-