SBTFeedbackVCtr.swift 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. //
  2. // SBTFeedbackVCtr.swift
  3. // SolarBT
  4. //
  5. // Created by weclouds on 2019/4/22.
  6. // Copyright © 2019 weclouds. All rights reserved.
  7. //
  8. import UIKit
  9. import SwiftyJSON
  10. import Alamofire
  11. import PPNetworkHelper
  12. import CryptoSwift
  13. import WebKit
  14. import PKHUD
  15. let NOTIFICTIONCHANGEFEEDBACKURL = "NOTIFICTIONCHANGEFEEDBACKURL"
  16. class SBTFeedbackVCtr: UIViewController {
  17. var webView:WKWebView?
  18. /*****************/
  19. var mFirmwareInfo : FirmwareinInfo?
  20. var status :String?
  21. var filePath :String?
  22. var newFireware :String?
  23. var dataSource :[String]? = [String]()
  24. lazy var tableView: UITableView = {
  25. let tableview = UITableView(frame: CGRect(x: 0, y: 0, width: KSCREENWIDTH, height: KSCREENHEIGHT - KNavBarHeight), style: .plain)
  26. tableview.delegate = self
  27. tableview.dataSource = self
  28. return tableview
  29. }()
  30. /******************/
  31. override func viewDidLoad() {
  32. super.viewDidLoad()
  33. checkTheBlueToothWasActivity()
  34. title = "Customer_feedback".da_localizedStr()
  35. setUPWKWebView()
  36. NotificationCenter.default.addObserver(self, selector: #selector(reloadURL), name: NSNotification.Name(NOTIFICTIONCHANGEFEEDBACKURL), object: nil)
  37. }
  38. override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
  39. }
  40. }
  41. //extension SBTFeedbackVCtr{
  42. // func notificationRegister() {
  43. // NotificationCenter.default.addObserver(self, selector: #selector(changeLanguage), name: NSNotification.Name(KCHANGELANGUAGE), object: nil)
  44. // }
  45. //
  46. // func notificationUnRegister() {
  47. // // NotificationCenter.default.removeObserver(self)
  48. // }
  49. //
  50. // @objc func changeLanguage() {
  51. // //
  52. // log.debug("执行了 -- changeLanguage \(DAConfig.currentLanguage())")
  53. // self.title = "Customer_feedback".da_localizedStr()
  54. //
  55. //
  56. // }
  57. //}
  58. extension SBTFeedbackVCtr{
  59. func getCurrentLanguage() -> String {
  60. let preferredLang = Bundle.main.preferredLocalizations.first! as NSString
  61. switch String(describing: preferredLang) {
  62. case "en-US", "en-CN":
  63. return "en"//英文
  64. case "zh-Hans-US","zh-Hans-CN","zh-Hant-CN","zh-TW","zh-HK","zh-Hans":
  65. return "cn"//中文
  66. default:
  67. return "en"
  68. }
  69. }
  70. func setUPWKWebView() {
  71. var url = URL(string: "http://www.szshuori.com")
  72. let userdef = UserDefaults.standard
  73. let langueage = userdef.object(forKey: "SOLARLANGUAGE") as? String
  74. log.debug("当前语言。---- \(langueage)")
  75. if langueage == nil || langueage == "0" {
  76. DAConfig.userLanguage = nil
  77. //跟随系统
  78. if getCurrentLanguage() == "cn"{
  79. url = URL(string: "http://www.szshuori.com")
  80. }else{
  81. url = URL(string: "https://www.srnesolar.com/")
  82. }
  83. }else{
  84. if langueage == "1"{
  85. url = URL(string: "http://www.szshuori.com")
  86. }else{
  87. url = URL(string: "https://www.srnesolar.com/")
  88. }
  89. }
  90. let webConfiguration = WKWebViewConfiguration()
  91. webView = WKWebView(frame: CGRect(x: 0, y: 0, width: KSCREENWIDTH, height: KSCREENHEIGHT - KNavBarHeight), configuration: webConfiguration)
  92. webView?.navigationDelegate = self
  93. let request = URLRequest(url: url!)
  94. webView!.load(request)
  95. view.addSubview(webView!)
  96. }
  97. @objc func reloadURL() {
  98. var url = URL(string: "http://www.szshuori.com")
  99. let userdef = UserDefaults.standard
  100. let langueage = userdef.object(forKey: "SOLARLANGUAGE") as? String
  101. if langueage == nil || langueage == "0" {
  102. DAConfig.userLanguage = nil
  103. //跟随系统
  104. if getCurrentLanguage() == "cn"{
  105. url = URL(string: "http://www.szshuori.com")
  106. }else{
  107. url = URL(string: "https://www.srnesolar.com/")
  108. }
  109. }else{
  110. if langueage == "1"{
  111. url = URL(string: "http://www.szshuori.com")
  112. }else{
  113. url = URL(string: "https://www.srnesolar.com/")
  114. }
  115. }
  116. let request = URLRequest(url: url!)
  117. webView!.load(request)
  118. }
  119. }
  120. extension SBTFeedbackVCtr : WKNavigationDelegate {
  121. // TODO: 决定导航的动作,通常处理跨域连接能否导航。
  122. // 页面开始加载时调用
  123. func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!){
  124. log.debug(" 页面开始加载时调用")
  125. HUD.flash(.progress)
  126. }
  127. // 当内容开始返回时调用
  128. func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!){
  129. log.debug(" 当内容开始返回时调用")
  130. HUD.flash(.progress)
  131. }
  132. // 页面加载完成之后调用
  133. func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!){
  134. log.debug("页面加载完成之后调用")
  135. /// 获取网页title
  136. HUD.flash(.success, delay: 1.0)
  137. }
  138. // 页面加载失败时调用
  139. func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error){
  140. /// 弹出提示框点击确定返回
  141. HUD.flash(.error, delay: 2)
  142. }
  143. }
  144. extension SBTFeedbackVCtr:UITableViewDelegate,UITableViewDataSource{
  145. func _______createUI() {
  146. let barbutton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(sendBeginCMD))
  147. self.navigationItem.rightBarButtonItem = barbutton
  148. self.view.addSubview(tableView)
  149. }
  150. @objc func sendBeginCMD() {
  151. //FF10043800020400000060F41E
  152. let arr = ["FF10043800020400000000"]
  153. //发送数据
  154. let marr = NSMutableArray()
  155. for i in 0..<arr.count {
  156. let dic : NSDictionary = [DataTag:arr[i]]
  157. marr.add(dic)
  158. }
  159. BabyBluetoothSwift.shareInstance()?.writeData1(marr)
  160. }
  161. @objc func sendUpdateCMD(_ cmd:String) {
  162. let arr = [cmd]
  163. //发送数据
  164. let marr = NSMutableArray()
  165. for i in 0..<arr.count {
  166. let dic : NSDictionary = [DataTag:arr[i]]
  167. marr.add(dic)
  168. }
  169. // BabyBluetoothSwift.shareInstance()?.writeData2(marr)
  170. }
  171. func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  172. return dataSource!.count
  173. }
  174. func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  175. var cell = tableView.dequeueReusableCell(withIdentifier: "cell")
  176. if cell == nil {
  177. cell = UITableViewCell(style: .default, reuseIdentifier: "cell")
  178. }
  179. cell?.textLabel?.text = "开始发送第\(indexPath.row)包数据..."
  180. return cell!
  181. }
  182. //0.001s
  183. func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  184. // 一包数据
  185. let perPack = dataSource![indexPath.row]
  186. //蓝牙数据包
  187. let BLEDataPackCount = perPack.count / 40
  188. log.debug("蓝牙数据包 --- \(BLEDataPackCount)")
  189. for i in 0..<BLEDataPackCount {
  190. let perDataPack = perPack.subString(start: i * 40, length: 40)
  191. log.debug("第\(i)包数据 ----\(perDataPack)")
  192. Thread.sleep(forTimeInterval: 0.002)
  193. sendUpdateCMD(perDataPack)
  194. }
  195. //最后一包
  196. let lastPack = perPack.subString(start: BLEDataPackCount * 40)
  197. log.debug("最后一包数据\(BLEDataPackCount + 1)---\(lastPack)")
  198. Thread.sleep(forTimeInterval: 0.002)
  199. sendUpdateCMD(lastPack)
  200. }
  201. }
  202. extension SBTFeedbackVCtr{
  203. }