C++ OS X 打开默认浏览器

Posted

技术标签:

【中文标题】C++ OS X 打开默认浏览器【英文标题】:C++ OS X open default browser 【发布时间】:2011-05-09 19:55:02 【问题描述】:

我想知道一种从 C++ 应用程序打开 OS X 上的默认浏览器然后打开请求的 URL 的方法。

编辑:我是这样解决的:

system("open http://www.apple.com");

【问题讨论】:

【参考方案1】:

查看Launch Services 的文档。

【讨论】:

【参考方案2】:

如果您更喜欢使用原生 OS X API 而不是 system("open ...")

您可以使用此代码:

#include <string>
#include <CoreFoundation/CFBundle.h>
#include <ApplicationServices/ApplicationServices.h>

using namespace std;

void openURL(const string &url_str) 
  CFURLRef url = CFURLCreateWithBytes (
      NULL,                        // allocator
      (UInt8*)url_str.c_str(),     // URLBytes
      url_str.length(),            // length
      kCFStringEncodingASCII,      // encoding
      NULL                         // baseURL
    );
  LSOpenCFURLRef(url,0);
  CFRelease(url);


int main() 
  string str("http://www.example.com");
  openURL(str);

您必须使用正确的 OS X 框架进行编译:

g++ file.cpp -framework CoreFoundation -framework ApplicationServices

【讨论】:

以上是关于C++ OS X 打开默认浏览器的主要内容,如果未能解决你的问题,请参考以下文章

OS X 系统中修改webstorm的默认浏览器

历史回顾:微软当年如何让IE成为Mac OS X默认浏览器的?

在Mac os x 安装 Redis

C++ GUI Windows 默认浏览器

Go 调用默认浏览器打开指定URL。

MoSync:在默认网络浏览器中打开链接