国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

WKWebView的簡(jiǎn)單使用,與js交互

2019-11-09 18:45:47
字體:
供稿:網(wǎng)友
import UIKitimport WebKit@objc class BasicWkWebViewController: BasicViewController,WKNavigationDelegate { var webView: WKWebView? init(url: String!) { super.init(nibName: nil, bundle: nil) let requsetUrl = URL.init(string: url) let request = URLRequest.init(url: requsetUrl!) let wkWeb = WKWebView.init(frame: self.view.bounds) self.view.addSubview(wkWeb) wkWeb.load(request) wkWeb.navigationDelegate = self; self.webView = wkWeb } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) { let requeststr = navigationAction.request.mainDocumentURL?.relativeString; if requeststr?.range(of: "#") != nil{ let data = self.requesParmeter(request: requeststr!) if let doStr = data["do"]{ let selector = NSSelectorFromString((doStr as! String).appending(":")) if self.responds(to: selector) { self.perform(selector, with: data) decisionHandler(WKNavigationActionPolicy.cancel) } } } decisionHandler(WKNavigationActionPolicy.allow) } func requesParmeter(request: String) ->NSDictionary{ let array = request.components(separatedBy: "#") let requestStr = array.last return self.getrequestjson(requeststr: requestStr!) } func getrequestjson(requeststr: String) ->NSDictionary { let requestString = requeststr.removingPercentEncoding let strData = requestString?.data(using: String.Encoding.utf8) do { let weatherDic = try JSONSerialization.jsonObject(with: strData!, options: .mutableLeaves) return weatherDic as! NSDictionary; } catch { } return NSDictionary() } override func viewDidLoad() { super.viewDidLoad() //self.webView.addObserver(self, forKeyPath: "title", options: .new, context: nil) } // override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) { // super.observeValue(forKeyPath: keyPath, of: object, change: change, context: context) // if keyPath == "title" { // self.title = change?[NSKeyValueChangeKey.newKey] as? String // } // } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }// deinit {// self.webView?.removeObserver(self, forKeyPath: "title")// }}//js方法extension BasicWkWebViewController{}

OC版本

-(BOOL)webView:(UIWebView )webView shouldStartLoadWithRequest:(NSURLRequest )request navigationType:(UIWebViewNavigationType)navigationType { NSString *requeststr=request.mainDocumentURL.relativeString; if([requeststr rangeOfString:@”#”].location!=NSNotFound) { NSDictionary *data = [self requesParmeter:requeststr]; for (NSString *str in self.webStringArray) { if (![data.allKeys containsObject:@”do”]) return NO; // if ([requeststr rangeOfString:str].location != NSNotFound) { if ([data[@”do”] isEqualToString:str]) { [self performSelector:NSSelectorFromString([str stringByAppendingString:@”:”]) withObject:data]; return NO; } } } return YES; }

//初始化公用參數(shù)的數(shù)組 - (NSArray *)webStringArray { if (_webStringArray == nil) { _webStringArray = @[]; } return _webStringArray; }


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 玛纳斯县| 兴宁市| 玉屏| 陈巴尔虎旗| 陈巴尔虎旗| 鸡西市| 永宁县| 宁夏| 黄龙县| 武宁县| 阳东县| 阳江市| 祁东县| 石渠县| 涟水县| 安阳县| 康乐县| 本溪市| 微博| 桐柏县| 叶城县| 思茅市| 公主岭市| 广德县| 沙河市| 将乐县| 新河县| 平阳县| 林州市| 高陵县| 崇仁县| 内丘县| 洛川县| 沙洋县| 阳西县| 香港| 福安市| 拉萨市| 南乐县| 东城区| 疏附县|