我開發在Xcode MacOS的應用程序。我需要做的一件事就是打開URL的系統詳細網頁瀏覽器。我有一個彈出的警告,給用戶這個選項。警報應顯示默認Web瀏覽器的名稱。但是我無法弄清楚默認網頁瀏覽器的名稱。獲取MacOS的默認瀏覽器的名字 - LSCopyDefaultApplicationURLForContentType
我有試過下面的代碼:
NSLog(@"%@", LSCopyDefaultApplicationURLForContentType(kUTTypeURL, kLSRolesAll, nil));
它只是返回即使我的默認瀏覽器設置爲Safari瀏覽器file:///Applications/Opera.app/
。無論我將默認瀏覽器更改爲(Chrome,Safari,Firefox等),上述方法僅返回Opera瀏覽器的URL。
有誰知道我怎麼能找出什麼是默認瀏覽器的名稱是什麼?我知道如何在默認瀏覽器中打開URL,這很容易,但獲取默認瀏覽器的名稱不是。
我知道這是可能的,因爲應用程序,如Tweetbot,有一個選項說「在Safari中打開」,這改變了,無論你的默認瀏覽器是。
感謝您的時間,丹。
謝謝並且非常接近,但並不完全在那裏。我必須使用''[[[[NSBundle bundleWithURL:test] infoDictionary] valueForKey:@「CFBundleExecutable」]'''來獲取名稱。你的方法不起作用。 – Supertecnoboff
儘管NSWorkspace方法是我所需要的,非常感謝。 – Supertecnoboff
'CFBundleExecutable'將返回可執行文件名,它可能與顯示的應用程序名稱不同。此外,應用程序名稱可能是本地化的,'CFBundleExecutable'不是。你應該嘗試'CFBundleName'或'CFBundleDisplayName'。我會用最新的更新我的答案,因爲它是兩者中唯一需要的答案。你可以在這裏找到其他相關鍵值:https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html –