Tag: Cocoa/WebViewの組み込み

目次

関連ページ

参考情報

WebViewを設置した単純なネイティブアプリを作成する

Swift + Storyboardの場合

URLを表示する

ツールバーを設置する

ツールバーのボタンを押したときの処理

リンククリック時に外部ブラウザで開く

class ViewController: NSViewController,WebPolicyDelegate {

    @IBOutlet weak var myWebView: WebView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        let url =  NSURL(string:"http://www.softantenna.com/")!
        let request = NSURLRequest(URL: url)
        myWebView.mainFrame.loadRequest(request)
        myWebView.policyDelegate = self
    }

    func openLinkWithSafari(actionInformation: [NSObject : AnyObject], request: NSURLRequest, decisionListener listener: WebPolicyDecisionListener) {
        let url: String = request.URL!.absoluteString
        if !url.hasPrefix("http://www.softantenna.com/") && NSWorkspace.sharedWorkspace().openURL((actionInformation[WebActionOriginalURLKey] as! NSURL)) {
            listener.ignore()
            return
        }
    }
    
    func webView(webView: WebView, decidePolicyForNavigationAction actionInformation: [NSObject : AnyObject], request: NSURLRequest, frame: WebFrame, decisionListener listener: WebPolicyDecisionListener) {
        if WebNavigationType.LinkClicked.rawValue == Int((actionInformation[WebActionNavigationTypeKey] as! NSNumber)) {
            self.openLinkWithSafari(actionInformation, request: request, decisionListener: listener)
        }
        listener.use()
    }
    
    func webView(webView: WebView, decidePolicyForNewWindowAction actionInformation: [NSObject : AnyObject], request: NSURLRequest, newFrameName frameName: String, decisionListener listener: WebPolicyDecisionListener) {
        if WebNavigationType.LinkClicked.rawValue == Int((actionInformation[WebActionNavigationTypeKey] as! NSNumber)) {
            self.openLinkWithSafari(actionInformation, request: request, decisionListener: listener)
        }
        listener.use()
    }
}

Objective-C + xibの場合

objective c - How to load URL on launch in a WebView (OSX project)? - Stack Overflowに解説がある。


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-04-11 (月) 15:28:03