将 xcode 6 更新为 7(代码无效 swift)
update xcode 6 to 7 (code doesn't work swift)
我有一个带有一些 webView 的项目 swift(我正在使用 WKWebView)并且它没有任何问题。
我将 xcode 更新到 7.1 版本,现在 none 我的 webview 工作。我没有错误,但我的屏幕上什么也没有。如果有人有想法谢谢
(对不起我的英语)
class Actu: UIViewController, WKNavigationDelegate {
/**** Variable declaration and IBoutlet *****/
@IBOutlet weak var contact: UIBarButtonItem!
var BackButtonItem:UIBarButtonItem!
var rightplayBarButtonItem:UIBarButtonItem!
var refreshPageButton:UIBarButtonItem!
var webView: WKWebView
var varIntermediate = String()
let urlContainer = StreamPlayer.sharedInstance.url
/**** Javascript Insertion *****/
required init?(coder aDecoder: NSCoder){
let config = WKWebViewConfiguration()
let scriptURL = NSBundle.mainBundle().pathForResource("hideSectionsActu", ofType: "js")
let scriptContent = try? String(contentsOfFile:scriptURL!, encoding:NSUTF8StringEncoding)
let script = WKUserScript(source: scriptContent!, injectionTime: .AtDocumentStart, forMainFrameOnly: true)
config.userContentController.addUserScript(script)
self.webView = WKWebView(frame: CGRectZero, configuration: config)
super.init(coder: aDecoder)
self.webView.navigationDelegate = self
}
////////////////////////////////////////////////
/**** View did Load *****/
override func viewDidLoad() {
super.viewDidLoad()
self.BackButtonItem = UIBarButtonItem(title: "Retour", style: UIBarButtonItemStyle.Plain, target: self, action: "back:")
self.refreshPageButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Refresh, target: self, action: "refresh:")
// Webview creation//
webView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(webView)
webView.translatesAutoresizingMaskIntoConstraints = false
let height = NSLayoutConstraint(item: webView, attribute: .Height, relatedBy: .Equal, toItem: view, attribute: .Height, multiplier: 1, constant: 0)
let width = NSLayoutConstraint(item: webView, attribute: .Width, relatedBy: .Equal, toItem: view, attribute: .Width, multiplier: 1, constant: 0)
view.addConstraints([height, width])
webView.addObserver(self, forKeyPath: "loading", options: .New, context: nil)
let url = NSURL(string: "MyURL")
let request = NSURLRequest(URL: url!)
webView.loadRequest(request)
}
///////////////////////////////////////////
func webViewFunction(webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
}
func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
let javaScriptString : NSString = "var el=document.getElementsByClassName(\"home-link\")[0];el.removeAttribute(\"href\");"
webView.evaluateJavaScript(javaScriptString as String, completionHandler: nil)
}
这是我在 xcode 7
"conversion" 之后的代码
您应该注意以下2个提示:
1.Pay注意这个设置:
PROJECT/TARGETS -> Build Settings -> Build Options -> Embedded Content Contains Swift Code -> YES
2.In 你的 plist 文件,你应该添加:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
如果您使用 Xcode 7 或更高版本重建项目,您可以请求非 https 互联网请求。
我有一个带有一些 webView 的项目 swift(我正在使用 WKWebView)并且它没有任何问题。 我将 xcode 更新到 7.1 版本,现在 none 我的 webview 工作。我没有错误,但我的屏幕上什么也没有。如果有人有想法谢谢
(对不起我的英语)
class Actu: UIViewController, WKNavigationDelegate {
/**** Variable declaration and IBoutlet *****/
@IBOutlet weak var contact: UIBarButtonItem!
var BackButtonItem:UIBarButtonItem!
var rightplayBarButtonItem:UIBarButtonItem!
var refreshPageButton:UIBarButtonItem!
var webView: WKWebView
var varIntermediate = String()
let urlContainer = StreamPlayer.sharedInstance.url
/**** Javascript Insertion *****/
required init?(coder aDecoder: NSCoder){
let config = WKWebViewConfiguration()
let scriptURL = NSBundle.mainBundle().pathForResource("hideSectionsActu", ofType: "js")
let scriptContent = try? String(contentsOfFile:scriptURL!, encoding:NSUTF8StringEncoding)
let script = WKUserScript(source: scriptContent!, injectionTime: .AtDocumentStart, forMainFrameOnly: true)
config.userContentController.addUserScript(script)
self.webView = WKWebView(frame: CGRectZero, configuration: config)
super.init(coder: aDecoder)
self.webView.navigationDelegate = self
}
////////////////////////////////////////////////
/**** View did Load *****/
override func viewDidLoad() {
super.viewDidLoad()
self.BackButtonItem = UIBarButtonItem(title: "Retour", style: UIBarButtonItemStyle.Plain, target: self, action: "back:")
self.refreshPageButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Refresh, target: self, action: "refresh:")
// Webview creation//
webView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(webView)
webView.translatesAutoresizingMaskIntoConstraints = false
let height = NSLayoutConstraint(item: webView, attribute: .Height, relatedBy: .Equal, toItem: view, attribute: .Height, multiplier: 1, constant: 0)
let width = NSLayoutConstraint(item: webView, attribute: .Width, relatedBy: .Equal, toItem: view, attribute: .Width, multiplier: 1, constant: 0)
view.addConstraints([height, width])
webView.addObserver(self, forKeyPath: "loading", options: .New, context: nil)
let url = NSURL(string: "MyURL")
let request = NSURLRequest(URL: url!)
webView.loadRequest(request)
}
///////////////////////////////////////////
func webViewFunction(webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
}
func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
let javaScriptString : NSString = "var el=document.getElementsByClassName(\"home-link\")[0];el.removeAttribute(\"href\");"
webView.evaluateJavaScript(javaScriptString as String, completionHandler: nil)
}
这是我在 xcode 7
"conversion" 之后的代码您应该注意以下2个提示:
1.Pay注意这个设置:
PROJECT/TARGETS -> Build Settings -> Build Options -> Embedded Content Contains Swift Code -> YES
2.In 你的 plist 文件,你应该添加:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
如果您使用 Xcode 7 或更高版本重建项目,您可以请求非 https 互联网请求。