在 Swift WKWebview 中获取设备名称
GET Device Name in Swift WKWebview
如何在 swift5 中获取设备名称并使用 wkwebview 发送它 url。如果我打印名称我得到模型名称但使用以下代码我得到错误线程 1:致命错误:在展开可选值时意外发现 nil。
let name = UIDevice.current.name
let url = URL(string: "mydomain/index.php?token=\(token ?? "")&model=\(name)")!
webView.load(URLRequest(url: url))
我需要将设备名称和令牌存储在 mysql 数据库中。
谢谢!
您尝试解包(!第 2 行末尾的运算符)不安全表达式。 URL 构造函数无法将您作为字符串传递的字符串识别为:参数有效 url。它 returns nil 并导致致命错误。尝试重构您的代码以使其更安全:
let urlStr = "mydomain/index.php?token=\(token ?? "")&model=\(name)"
print("trying to load url \(urlStr)")
if let url = URL(string: urlStr) {
webView.load(URLRequest(url: url))
}
更新:
其次是 this 所以问题代码必须稍微重构:
let urlStr = "mydomain/index.php?token=\(token ?? "")&model=\(name)"
print("trying to load url \(urlStr)")
if let url = URL(string: urlStr.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)) {
webView.load(URLRequest(url: url))
}
如何在 swift5 中获取设备名称并使用 wkwebview 发送它 url。如果我打印名称我得到模型名称但使用以下代码我得到错误线程 1:致命错误:在展开可选值时意外发现 nil。
let name = UIDevice.current.name
let url = URL(string: "mydomain/index.php?token=\(token ?? "")&model=\(name)")!
webView.load(URLRequest(url: url))
我需要将设备名称和令牌存储在 mysql 数据库中。 谢谢!
您尝试解包(!第 2 行末尾的运算符)不安全表达式。 URL 构造函数无法将您作为字符串传递的字符串识别为:参数有效 url。它 returns nil 并导致致命错误。尝试重构您的代码以使其更安全:
let urlStr = "mydomain/index.php?token=\(token ?? "")&model=\(name)"
print("trying to load url \(urlStr)")
if let url = URL(string: urlStr) {
webView.load(URLRequest(url: url))
}
更新: 其次是 this 所以问题代码必须稍微重构:
let urlStr = "mydomain/index.php?token=\(token ?? "")&model=\(name)"
print("trying to load url \(urlStr)")
if let url = URL(string: urlStr.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)) {
webView.load(URLRequest(url: url))
}