公司接下來(lái)的項(xiàng)目需要用swift內(nèi)嵌h5來(lái)實(shí)現(xiàn), 以前沒(méi)有做過(guò)swift項(xiàng)目, 現(xiàn)在慢慢將所學(xué)的一點(diǎn)一滴記錄一下 一個(gè)是怕自己忘了- =, 再就是希望大家看到能幫助我哈哈哈
前幾天想要直接用swift上手- =發(fā)現(xiàn)連初始化什么的都給忘記了, 又乖乖回去先用OC簡(jiǎn)單的做了一個(gè)webView的界面
效果如下:
接下來(lái), 我就一點(diǎn)點(diǎn)的把OC的代碼用swift編寫了
import UIKit
//要導(dǎo)入JavaScriptCore.framework庫(kù)
import JavaScriptCore
//在此簽訂UIWebViewDelegate協(xié)議
class ViewController: UIViewController, UIWebViewDelegate {
//輸入框
var textFiled = UITextField.init()
var webView = UIWebView.init()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
//初始化textfield
textFiled.frame = CGRectMake(20, 40, 260, 30)
textFiled.borderStyle = .Bezel
textFiled.clearButtonMode = .WhileEditing
textFiled.backgroundColor = UIColor.whiteColor()
self.view.addSubview(textFiled)
//開始運(yùn)行btn
let btn = UIButton.init(frame: CGRectMake(290, 40, 30, 30))
btn.setTitle("GO", forState: UIControlState.Normal)
btn.setTitleColor(UIColor.blueColor(), forState: UIControlState.Normal)
btn.addTarget(self, action: #selector(ViewController.btnAction(_:)), forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(btn)
//后退btn
let backBtn = UIButton.init(frame: CGRectMake(btn.frame.origin.x + 40, btn.frame.origin.y, 30, 30))
backBtn.setTitle("<", forState: UIControlState.Normal)
backBtn.setTitleColor(UIColor.blueColor(), forState: UIControlState.Normal)
backBtn.addTarget(self, action: #selector(ViewController.backBtnAction(_:)), forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(backBtn)
//前進(jìn)btn
let forwardBtn = UIButton.init(frame: CGRectMake(backBtn.frame.origin.x + 40, backBtn.frame.origin.y, 30, 30))
forwardBtn.setTitle(">", forState: UIControlState.Normal)
forwardBtn.setTitleColor(UIColor.blueColor(), forState: UIControlState.Normal)
forwardBtn.addTarget(self, action: #selector(ViewController.forwardBtnAction(_:)), forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(forwardBtn)
webView.frame = CGRectMake(0, 80, UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height - 80)
webView.backgroundColor = UIColor.lightGrayColor()
self.view.addSubview(webView)
//設(shè)置代理(不要忘記!如果不設(shè)置就無(wú)法調(diào)用webView的代理方法)
webView.delegate = self
}
/**
* parameters就是參數(shù)茁计,return type是返回類型
func <#name#>(<#parameters#>) -> <#return type#> {
<#function body#>
}
*/
func btnAction(btn:UIButton){
//加載textfield中的網(wǎng)址
let request = NSURLRequest.init(URL: NSURL.init(string: "http://" + textFiled.text!)!)
webView.loadRequest(request)
}
func backBtnAction(backBtn:UIButton) {
webView.goBack()
}
func forwardBtnAction(forwardBtn:UIButton) {
webView.goForward()
}
/**
*網(wǎng)頁(yè)加載完成調(diào)用此方法
*/
func webViewDidFinishLoad(webView: UIWebView) {
//調(diào)用提示框方法
setAlertShow()
}
//顯示提示框
func setAlertShow() {
let jsString = String(format:"alert(123)")
print(jsString)
//交互
webView.stringByEvaluatingJavaScriptFromString(jsString)
}
運(yùn)行效果如下:
swift版webView.gif