Skip to Content

WebKit View 在 Xcode 上的問題

執行環境:MacBook Pro + macOS Mojava 10.14.5 + Xcode 10.2.1

事情是這樣的,我用 Xcode 製作一個單純的 App,只是放入一個 WebKit View 元件(底下簡稱 WKWebView ),在 Xcode 上執行並沒問題。

如下圖,白框是 WKWebView 元件,左邊的 Windows 是執行的畫面。

然而,我想直接執行 Build 出來的 App,問題就來了。

如下圖,我先選紅圈 ①,在藍圈 ② 可以看到 App 的位置,點下之後就可以看到綠圈 ③ 的 App 檔案,直接執行它,就看到黃圈 ④ 的錯誤報告。

 

我測試過其他簡單的元件如 Label、Button 則沒有這個問題,就 WKWebView 才會如此。

真的是查了許多資料,總算看到一篇說 Xcode 9 用故事版(storyboard)創建 WKWebView 會有問題,在 iOS 11 就沒有問題了,在 iOS 11 之前的版本要用程式自行建置才行。

我想 macOS 也是有同樣的問題吧,難怪 WKWebView 的官方說明的確有提供一段建置的程式碼,不過好像是 iOS 用的,所以我無法測試出來。

後來我又在別的地方找到一段 macOS 用的 Swift 碼,終於測試成功了。

程式碼如下:

 

import Cocoa

import WebKit

 

class ViewController: NSViewController, WKUIDelegate, WKNavigationDelegate {

 

   let webView = WKWebView()

   

   override func viewDidLoad() {

       super.viewDidLoad()

 

       // Do any additional setup after loading the view.

       

       self.webView.uiDelegate = self

       self.webView.navigationDelegate = self

       webView.frame = CGRect(x:0,y:0,width:400,height: 270)

       view.addSubview(webView)

               

       let myURL=URL(string: "https://www.apple.com")

       let myRequest = URLRequest(url: myURL!)

       webView.load(myRequest)

   }

 

   override var representedObject: Any? {

       didSet {

       // Update the view, if already loaded.

       }

   }

}

 

黃色背景色的文字是自行加上去的,其他程式碼則是專案一開始就有的。

至於紅色的部份,我試過移走也可以執行,不過我還不知道那些的作用。

底下是執行的畫面:

 

回應

發表新回應

這個欄位的內容會保密,不會公開顯示。
  • 自動將網址與電子郵件地址轉變為連結。
  • 自動斷行和分段。
  • 可使用的 HTML 標籤:<a> <address> <b> <blockquote> <br> <caption> <center> <cite> <code> <dd> <del> <div> <dl> <dt> <em> <h1> <h2> <h3> <h4> <h5> <h6> <hr> <i> <img> <ins> <li> <ol> <p> <pre> <span> <strike> <strong> <sub> <sup> <table> <tbody> <td> <th> <tr> <u> <ul>
    Allowed Style properties: background, background-attachment, background-color, background-image, background-position, background-repeat, border, border-bottom, border-bottom-color, border-bottom-style, border-bottom-width, border-collapse, border-color, border-left, border-left-color, border-left-style, border-left-width, border-right, border-right-color, border-right-style, border-right-width, border-spacing, border-style, border-top, border-top-color, border-top-style, border-top-width, border-width, bottom, caption-side, clip, color, direction, empty-cells, font, font-family, font-size, font-size-adjust, font-stretch, font-style, font-variant, font-weight, height, left, letter-spacing, line-height, list-style, list-style-image, list-style-position, list-style-type, margin, margin-bottom, margin-left, margin-right, margin-top, max-height, max-width, min-height, min-width, overflow, padding, padding-bottom, padding-left, padding-right, padding-top, right, table-layout, text-align, text-decoration, text-indent, text-transform, top, unicode-bidi, vertical-align, white-space, width, word-spacing, z-index

更多關於格式選項的資訊

CAPTCHA
驗證碼只有阿拉伯數字, 這是躲廣告用的, 麻煩你輸入了.
Image CAPTCHA
Enter the characters shown in the image.


story | about seo