【发布时间】:2018-05-11 15:07:16
【问题描述】:
我的网址
我的发现
该 URL 与所有 safari 和其他浏览器完美配合。 (包括 iOS 11 移动版 Safari)
该网址适用于除 iOS 11 以外的所有 iOS 版本。
我尝试在 UIWebView 和 WKWebView 上打开 URL,但同样的问题发生在两者上。即 URL 在接近完成时停止加载,并且 然后什么都不会发生。
这是我目前尝试过的
import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate {
// Objects
var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
setupWebView()
loadUrl()
}
func setupWebView() {
let prefs = WKPreferences()
prefs.javaScriptEnabled = true
let config = WKWebViewConfiguration()
config.preferences = prefs
webView = WKWebView(frame: view.frame, configuration: config)
webView.navigationDelegate = self
view.addSubview(webView)
}
func loadUrl() {
webView.navigationDelegate = self
let url = URL(string: "https://app.educationgalaxy.com/games/ipadgame.html?retries=3&name=blastoff&rocket=3&level=2&score=0&gameTimer=150")!
var request = URLRequest(url: url)
request.cachePolicy = .reloadRevalidatingCacheData
webView.load(request)
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
print(webView.url!)
}
func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
print(webView.url!)
}
func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
print("error - \(error)")
}
}
感谢您的帮助。
【问题讨论】:
-
从 iOS 11 开始,如果在非主线程中执行任何 UI 内容(即使您访问 UIApplication),它将无法工作。以下是我得到的错误。 “CoreAnimation:[EAGLContext renderbufferStorage:fromDrawable:] 在隐式事务中从非主线程调用!请注意,如果没有显式 CATransaction 或调用 [CATransaction flush],这可能是不安全的。”
-
感谢 cmets。如您所见,我正在尝试从主线程加载 URL。我尝试的就像创建了一个应用程序并在 viewDidLoad 中创建了一个 WKwbview 并请求加载 URL。 URL 已开始加载,但在加载过程中停止。这只发生在 ios 11 上,每个其他版本都能完美加载 URL。
-
你找到解决办法了吗?
标签: ios iphone swift uiwebview ios11