【发布时间】:2017-05-19 10:51:42
【问题描述】:
我对 Swift 开发或 iOS 开发还很陌生。 我正在制作一个应用程序,该应用程序主要显示具有默认 URL 的 webview,并设置了 firebase,以便发送带有 URL 的通知以更改该 webview。
到目前为止,我已经做到了:
- 使用 url 传递的密钥通过 firebase 成功接收通知;
- 在用户忘记打开 wifi 时使用 Reachability 显示警报;
- progressIndicator 的使用
这一切都很顺利,除了 webView url 的变化。
这是我的 viewDidAppear
class ViewController: UIViewController, UIWebViewDelegate {
@IBOutlet var webView: UIWebView!
@IBOutlet weak var progressIndicator: UIActivityIndicatorView!
@IBOutlet weak var fakeLogo: UIImageView!
let reachability = Reachability()!
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(_ animated: Bool){
if reachability.isReachable {
if reachability.isReachableViaWiFi {
print("Reachable via WiFi")
} else {
print("Reachable via Cellular")
}
let myUrl = NSURL(string:"https://www.btp.pt")
let myRequest = NSURLRequest(url: myUrl! as URL);
webView.delegate = self
webView.loadRequest(myRequest as URLRequest)
} else {
//print("Network not reachable")
let alert = showNetworkDialogHelper()
alert.showNetworkDialog(fromController: self)
}
}
这是我的 changeUrl 函数,也在 ViewController 中
func changeWebviewURL(url: String) {
print("changeWebviewURL : \(url)")
//print(self.webView) returns nil and
//fatal error: unexpectedly found nil while unwrapping an Optional value
let stringUrl = url
let requestUrl = URL(string: stringUrl);
let myRequestUrl = URLRequest(url: requestUrl! as URL);
self.webView!.loadRequest(myRequestUrl)
}
self.webView 在此函数中的简单打印返回零。这就是我一直试图克服但无法克服的问题。
你能帮帮我吗?
【问题讨论】:
-
你检查 requestUrl 是否为零?
-
您好,感谢您的帮助。是的,我做到了,但错误甚至在此之前就出现了。即使我没有声明最后 4 行,错误仍然存在。
-
WebView 是在 Storyboard 中还是您以编程方式创建它?
-
@Rishab 是的,它在 Storyboard 中。我已经更新了上面的代码。
-
尝试让 webView 属性变得更强大。
标签: ios swift firebase webview firebase-cloud-messaging