0
私はMacRuby(objective-c)アプリケーションを作成しています。これは基本的に、デフォルトで特定のWebサイト(私)を開くWebブラウザです。WebViewでデフォルトのブラウザでリンクを開く方法
ただし、WebViewでリンクを開くことは望ましくありません。私はむしろユーザーのデフォルトブラウザで開くと思います。ここに私がこれまで持っているコードがありますが、それはdecidePolicyForNavigation
メソッドを呼び出すようには見えません。
framework "WebKit"
class AppDelegate
attr_accessor :window
def applicationDidFinishLaunching(notification)
load_web_view
end
def load_web_view
web_view = WebView.new
request = NSURLRequest.requestWithURL(NSURL.URLWithString("http://example.com"))
web_view.mainFrame.loadRequest(request)
window.contentView = web_view
web_view.frameLoadDelegate = self
web_view.setPolicyDelegate(self)
end
# this makes it so links open in the default browser
def webView(view, decidePolicyForNavigationAction:actionInformation, request:request, frame:frame, decisionListener:listener)
puts 'running nav policy'
listener.ignore
NSWorkspace.sharedWorkspace.openURL(request.URL)
end
end
私は間違っていますか?
LaunchServices APIを使用すると、私の 'NSWorkspace.sharedWorkspace.openURL(request.URL) 'の代わりになりますか?私はまだこれらの外部リンクがWebView内で開くのを防ぐ必要があり、私の "ポリシー方法"は呼び出されません。私が間違っていることを知っていますか? – Andrew
多分私はここで大きな写真を誤解しています。まず、なぜあなたはwebviewを作成していますか?その目的は何ですか? – jkh
私のWebベースのチャットルームアプリケーションのGUIラッパーです。誰かがチャットルームにリンクを投稿したときに、チャットルームから離れて800 x 400pxの小さなチャットウィンドウにそのページを表示するのではなく、そのリンクをユーザーのデフォルトブラウザで開くことを望みます。 – Andrew