私はXcodeでmacOSアプリケーションを開発しています。私がしなければならないことの1つは、URLのシステム・ディト・ウェブ・ブラウザを開くことです。私はユーザーにこのオプションを与えるポップアップアラートを持っています。アラートには、デフォルトのWebブラウザの名前が表示されます。しかし、私はデフォルトのWebブラウザの名前を把握することができません。MacOSのデフォルトブラウザ名を取得する - LSCopyDefaultApplicationURLForContentType
私は、次のコードを試してみました:それはちょうど私のデフォルトのブラウザがSafariのに設定されていてもfile:///Applications/Opera.app/
を返し
NSLog(@"%@", LSCopyDefaultApplicationURLForContentType(kUTTypeURL, kLSRolesAll, nil));
を。既定のブラウザを(Chrome、Safari、Firefoxなど)に変更しても、上記のメソッドはOperaブラウザのURLを返します。
デフォルトのブラウザの名前はどのようにわかりますか?私は、デフォルトのブラウザでURLを開く方法を知っています。とても簡単ですが、デフォルトのブラウザの名前を取得することはできません。
Tweetbotのようなアプリには、「Safariで開く」というオプションがあり、デフォルトのブラウザに変更されているため、これが可能です。
お時間をありがとうございました。
感謝を渡します非常に近いですが、かなりありません。私は '' [[[NSBundle bundleWithURL:test] infoDictionary] valueForKey:@ "CFBundleExecutable"] '' 'を使って名前を取得しなければなりませんでした。あなたの方法は機能しませんでした。 – Supertecnoboff
NSWorkspaceのアプローチは私が必要なものですが、とてもありがとうございます。 – Supertecnoboff
'CFBundleExecutable'は、実行可能ファイル名を返します。これは、表示されたアプリケーション名と異なる場合があります。また、アプリケーション名はローカライズされていてもよく、 'CFBundleExecutable'はそうではありません。 'CFBundleName'か' CFBundleDisplayName'を試してみてください。私は2つのうちの唯一の必要なものなので、最新のもので私の答えを更新します。関連する他のキーはこちらから入手できます:https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html –