问题标签 [swift3.0.2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
30 浏览

ios - 为什么 UIView 的扩展对除了放置在 IB 上的 UIView 之外的其他控件没有直接影响?

例如

我知道这是不必要的,但只是为了检查我已经创建了这个并发现如果在 UIView 中应用它可以直接工作,否则它不起作用。

有人可以建议我我错过了什么吗?我正在使用 swift 3.0.2。提前致谢 :)

0 投票
1 回答
1722 浏览

ios - 如何在 AppDelegate 中使用 stringByEvaluatingJavaScript

解决了

我在 ViewController 中使用了观察者

我在 Swift3 中有一个 iOS webview,需要从 AppDelegate 调用 Js 函数。原因是因为我正在使用推送通知,当用户点击通知时,我需要将信息从 swift3 传递给 JS。

这是我的ZhWebViewController 的头

class ZhWebViewController: UIViewController, UIWebViewDelegate { func passNotificationToWebView(userInfo: AnyObject){ let jsonData = try! JSONSerialization.data(withJSONObject: userInfo, options:
JSONSerialization.WritingOptions.prettyPrinted) let jsonString = NSString(data: jsonData, encoding:
String.Encoding.utf8.rawValue)! as String self.webView.stringByEvaluatingJavaScript(from: "triggerNotificationClick(\ (jsonString))") } }

这就是我声明我的 UIWebView 的方式

@IBOutlet weak var webView: UIWebView!

这就是我调用JS函数的方式,这种方式有效!!!

self.webView.stringByEvaluatingJavaScript(from: "someFunctionJS(\(jsonString))")

这是我的 AppDelegate 的负责人

@UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? }

这是我收到通知的地方,在这里我想调用 JS 函数,我尝试在 ZHWebView 中调用一个函数并尝试发送到 JS,但我得到了致命错误。

@available(iOS 10, *) extension AppDelegate : UNUserNotificationCenterDelegate{ func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { let userInfo = response.notification.request.content.userInfo ZhWebViewController().passNotificationToWebView(userInfo: userInfo as AnyObject) completionHandler() } }

0 投票
1 回答
1797 浏览

swift - Google Firebase Messaging - 在 Swift 3 中解析推送通知

我一直在(成功地)使用 Google Firebase 消息系统。我可以向我的 iPhone 发送消息并订阅/取消订阅组/主题,现在我想在推送通知到达手机时对其进行管理和处理。

这是来自谷歌的默认代码,当推送通知到达应用程序看到并打印时,它可以正常工作:

但是,当我尝试使用各种 Swift 3 JSON 处理工具时,我最终会遇到错误。

例如,如果我尝试:

我收到一个错误,即参数类型的 jsonObject 不是我需要的。

有什么见解吗?

0 投票
1 回答
1015 浏览

swift - 在两个字典数组中查找重复键以使用新数组字典更新旧数组字典

我想用新字典更新保存的字典。如果不存在值,则需要将新值附加到字典中。还使用字典的新值更新旧的现有值。

我有旧保存的字典数组:

新下载的字典数组:

我想:
1. 将 "Alice.png" 更新为 "alice.png" for "id" = 1,
2.ignore "id" = 2 因为两个字典数组都相同,
3. 附加来自 newDict 的所有新项目进入已保存的字典

最终的字典应该是:

到目前为止我试过这个:

我只想用 new 覆盖这本字典,所以我将 ["id":"1","pic":"Alice.png"... 更新为 ["id":"1","pic":"alice.png"... png"... 但这不起作用: