GTMWebKit
swift 针对 WKWebKit 的封装
代码传送门
此种方式在iOS 11.0以后的系统中使用WKWebView,在iOS 11.0之前的系统中使用UIWebView。
在使用WKWebView会自动同步WKWebsiteDataStore和HTTPCookieStorage中的Cookies。
PS:此种方式我目前没经过详细测试,如果你们发现此种方式有问题,请Issues告诉我,暂时先切到方法2
此种方式强制使用UIWebView,Cookies共享没问题
直接下载代码,里面详细的使用例子
Install Cocoapods if need be.
$ gem install cocoapods
Add GTMWebKit
in your Podfile
.
use_frameworks!
pod 'GTMWebKit'
Then, run the following command.
$ pod install
Copy GTMWebKit
folder to your project. That’s it.
Note: Make sure that all files in GTMWebKit
included in Compile Sources in Build Phases.
This version requires Xcode 8.0 and Swift 3.
Firstly, import GTMWebKit
.
import GTMWebKit
// Push
let webVC = GTMWebViewController.init(with: "https://www.baidu.com", navigType: .navbar)
self.navigationController?.pushViewController(webVC, animated: true)
let webVC = GTMWebViewController.init(with: "https://www.baidu.com", navigType: .toolbar)
let navigationC = UINavigationController.init(rootViewController: webVC)
navigationC.navigationBar.tintColor = UIColor.gray
self.present(navigationC, animated: true, completion: nil)
// 详细代码见Demo中CustomWebViewController.swift
func registApiForJs() {
// 简单测试方法
self.registApi(method: "test") { [weak self] (body) in
print("\nCustomWebViewController -----> recived js message: \(body ?? "")\n\n")
let message = "\(body ?? "")"
self?.showMessage(message: message)
}
// 扫描功能API
self.registApi(method: "scanBarcode") { [weak self] (body) in
self?.startScanBarcode(viewTitle: "条码扫描")
}
}
public enum GTMWK_NavigationType {
case navbar // web导航控制按钮放在导航栏
case toolbar // web导航控制按钮放在底部工具栏
}
var navigType: GTMWK_NavigationType! // 控制网页导航的方式(导航栏,工具栏)
var isShowCloseItem = true // 是否显示关闭按钮(navigType == .navbar 时使用)
var isShowToolbar = true // 是否显示工具栏(navigType == .toolbar 时使用)
欢迎提交 issue 和 PR,大门永远向所有人敞开。
本项目遵循 MIT 协议开源,具体请查看根目录下的 LICENSE 文件。