问题标签 [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.
ios - 为什么 UIView 的扩展对除了放置在 IB 上的 UIView 之外的其他控件没有直接影响?
例如
我知道这是不必要的,但只是为了检查我已经创建了这个并发现如果在 UIView 中应用它可以直接工作,否则它不起作用。
有人可以建议我我错过了什么吗?我正在使用 swift 3.0.2。提前致谢 :)
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()
}
}
swift - Google Firebase Messaging - 在 Swift 3 中解析推送通知
我一直在(成功地)使用 Google Firebase 消息系统。我可以向我的 iPhone 发送消息并订阅/取消订阅组/主题,现在我想在推送通知到达手机时对其进行管理和处理。
这是来自谷歌的默认代码,当推送通知到达应用程序看到并打印时,它可以正常工作:
但是,当我尝试使用各种 Swift 3 JSON 处理工具时,我最终会遇到错误。
例如,如果我尝试:
我收到一个错误,即参数类型的 jsonObject 不是我需要的。
有什么见解吗?
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"... 但这不起作用: