huqs-SwiftJavaScript-huqs.zip

  • SKS%2112074
    了解作者
  • Swift
    开发工具
  • 229KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 0
    下载次数
  • 2021-01-17 16:57
    上传日期
swift 和 Javascript的交互,javascript可以调用swift ,swift也可以调用javascript 通过WKWebView来实现
huqs-SwiftJavaScript-huqs.zip
内容介绍
#SwiftJavaScript swift 和 Javascript的交互,javascript可以调用swift ,swift也可以调用javascript 通过WKWebView来实现,不使用UIWebView ![效果](http://git.oschina.net/huqs/SwiftJavaScript/raw/huqs/image.gif?dir=0&filepath=image.gif&oid=26dc6fba149357d75097f3cdbc303186e87c5dd3&sha=9a095f8ac5a14ac836166ac1fe4c537faeccc842 ) ## Features - [x] JavaScript call Native App - [x] Native App call JavaScript ## Requirements - iOS 8.0+ / Mac OS X 10.9+ / tvOS 9.0+ / watchOS 2.0+ - Xcode 7.2+ ## Communication - 如果您需要帮助,请与我联系hu670014125@163.com ## Usage ### JavaScript call Native App ```swift let conf = WKWebViewConfiguration() let userScript = WKUserScript(source: "redHeader()", injectionTime: .AtDocumentEnd, forMainFrameOnly: true) conf.userContentController.addUserScript(userScript) webView = WKWebView(frame: self.view.frame, configuration: conf) ``` ### Native App call JavaScript 1.首先添加一个WKScriptMessageHandler代理 ```swift class ViewController: UIViewController, WKScriptMessageHandler ``` 2.实现«userContentController»的代理方法 ```swift func userContentController(userContentController: WKUserContentController!, didReceiveScriptMessage message: WKScriptMessage!) { if(message.name == "callbackHandler") { println("JavaScript is sending a message \(message.body)") } } ``` 3.WebView启动对JavaScript的监听事件 ```swift contentController.addScriptMessageHandler( self, name: "callbackHandler" ) ``` 4.web中,添加如下JavaScript ```swift webkit.messageHandlers.callbackHandler.postMessage("JavaScript 调用 Swift"); ``` 4.swift调用JavaScript ```swift self.webView.evaluateJavaScript("redHeader('来自Swift的调用')") { (sender:AnyObject?, error:NSError?) -> Void in print("sender:\(sender) error:\(error)") } redHeader是JavaScript中对应的方法,该方法需要传递一个字符串 ``` HTML源码 ```swift <html> <head> <meta charset="UTF-8"> <title>web页面</title> </head> <body> <style type='text/css'> body{font-size:60px}</style> <h3 align="center">标题1(APP调用JS,使标题变成红色)</h3> <br> <button style="text-align:center;height:100px;width:300px;font-size:40px;" onclick="callNativeApp()">调用APP</button> <br><br><br> <div id="jsParamFuncSpan"></dvi> </body> <script> // JS调用APP(callbackHandler:要两边一致) function callNativeApp () { try { webkit.messageHandlers.callbackHandler.postMessage("JavaScript 调用 Swift"); } catch(err) { console.log('The native context does not exist yet'); } } var cunt=0; // APP调用JS function redHeader(msg) { cunt++; document.querySelector('h3').style.color = "red"; document.getElementById('jsParamFuncSpan').innerHTML = msg+'&nbsp;&nbsp;&nbsp;<font color=red >您点击了&nbsp;&nbsp;'+cunt+'&nbsp;&nbsp;次</font>'; } </script> ```
评论
    相关推荐
    • Swift
      我的Swift学习计划 01-表情符号 设计使用者介面 使用UIButton建立按钮并加上程式码 变更按钮颜色 运用UIAlertController与UIAlertAction 将视图控制器的视图的背景变成黑色 02-你好世界 使用Auto Layout建立一个支持...
    • Swift
      Swift 教育SWIFT网络应用 作者:Gregory S. DeLozier博士版本0.1日期:2021年1月19日
    • Swift
      Swift
    • swift 基础
      swift学习,简单基础学习,基础语法,基础数据类型
    • swift weather
      基于Swift开发的天气预报软件,合成网络流
    • Advanced Swift
      高级 Swift 学习的一本好书 高级 Swift 学习的一本好书
    • swiftTabBar
      利用swift制作不规则tabbar,可以自己定义主界面,自定义tabbar
    • swift weather
      用masonry布局,在swift中添加oc混编,swift的闭包传值,定位
    • Swift
      Swift
    • swift 2048
      用最新的swift3.0写的2048小游戏的经典模式,通过上、下、左、右滑动屏幕实现数字块的滑动、融合、更新新的数字块,同时进行分数的累加和实时更新,可以供swift开发的初学者参考和学习。