我想制作一个简单的全屏幕agar.io OS X应用程序(没有标题,只是游戏),使用加载agar.io网站的WebView ...但是它遇到了与Safari相比的严重滞后问题好的......比如游戏无法播放。
为此,我创建了一个没有故事板的简单可可应用程序(我尝试使用Xcode 6.4和7 beta,在Yosemite上使用最好的图形卡在最新的MacBook Pro上),在窗口中添加webview,连接webview出口。这是我的代码:
// AppDelegate.swift
import Cocoa
import WebKit
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
@IBOutlet weak var window: NSWindow!
@IBOutlet weak var webView: WebView!
func applicationDidFinishLaunching(aNotification: NSNotification) {
// Insert code here to initialize your application
let frame = NSScreen.mainScreen()?.frame
window.setFrame(frame!, display: true)
let url = NSURL(string : "http://www.agar.io")
let request = NSURLRequest(URL: url!)
webView.mainFrame.loadRequest(request)
window.contentView = webView
}
func applicationWillTerminate(aNotification: NSNotification) {
// Insert code here to tear down your application
}
}
也许我错过了什么?
答案 0 :(得分:4)
我终于找到了解决方案......即使用新的WKWebView类而不是旧的WebView类。 WKWebView类(几乎?)和safari一样快。
我的新代码几乎相同,除了我必须手动实例化WKWebView,因为UI编辑器中没有WKWebView对象,并且更改了直接应用于WKWebView对象的loadRequest(...):
import Cocoa
import WebKit
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
@IBOutlet weak var window: NSWindow!
var webView:WKWebView?
func applicationDidFinishLaunching(aNotification: NSNotification) {
let url = NSURL(string : "http://agar.io")
let request = NSURLRequest(URL: url!)
webView = WKWebView()
webView!.loadRequest(request)
window.contentView = webView
}
func applicationWillTerminate(aNotification: NSNotification) {
// Insert code here to tear down your application
}
}