【问题标题】:update xcode 6 to 7 (code doesn't work swift)将 xcode 6 更新为 7(代码无法快速运行)
【发布时间】:2015-10-22 14:55:11
【问题描述】:

我有一个带有一些 webView 的项目(我正在使用 WKWebView ),它运行起来没有任何问题。 我将我的 xcode 更新到 7.1 版本,现在我的 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 “转换”后的代码

【问题讨论】:

  • 请分享一些代码和更多信息,你的问题太笼统和模糊,任何人都无法给你答案。您有可能利用了 7 中修复的错误,需要重写代码
  • 对不起,我忘记了,我编辑了我的帖子
  • 尝试强制约束更新 viewdidappear 函数,覆盖 func viewDidAppear(animated:Bool){super.viewDidAppear(animated);self.updateViewConstraints();}

标签: xcode swift webview updates


【解决方案1】:

你应该注意以下2个提示:

1.注意这个设置:

PROJECT/TARGETS -> Build Settings -> Build Options -> Embedded Content Contains Swift Code -> YES

2.在你的 plist 文件中,你应该添加这个:

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

如果您使用 Xcode 7 或更高版本重建项目,您可以请求非 https 互联网请求。

【讨论】:

    猜你喜欢
    • 2021-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-20
    • 2015-12-21
    • 2019-08-16
    • 1970-01-01
    • 2017-02-21
    相关资源
    最近更新 更多