Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >使用Safari打开URL,不管系统浏览器设置为什么

使用Safari打开URL,不管系统浏览器设置为什么
EN

Stack Overflow用户
提问于 2010-06-03 03:50:07
回答 4查看 10.8K关注 0票数 12

在我的目标-c程序中,无论系统的默认浏览器是什么,我都需要在Safari中打开一个URL。这意味着这是行不通的,因为它可以启动Firefox或其他浏览器:

代码语言:javascript
代码运行次数:0
复制
NSWorkspace * ws = [NSWorkspace sharedWorkspace];
[ws openURL: url];

我想我已经接近这个了:

代码语言:javascript
代码运行次数:0
复制
[ws launchAppWithBundleIdentifier: @"com.apple.Safari"
                          options: NSWorkspaceLaunchWithoutActivation
   additionalEventParamDescriptor: NULL
                 launchIdentifier: nil];

只需要知道如何将URL作为参数传递.有更简单的方法吗?

谢谢!

更新:下面的代码用我想要的URL启动Safari,但是Safari立即终止!知道为什么会这样吗?

代码语言:javascript
代码运行次数:0
复制
NSWorkspace * ws = [NSWorkspace sharedWorkspace];
[ws openURLs: urls withAppBundleIdentifier:@"com.apple.Safari" 
     options: NSWorkspaceLaunchDefault
additionalEventParamDescriptor: NULL
launchIdentifiers: NULL];

我在LSOpenFromURLSpec上观察到了同样的行为。如果Safari实例正在运行,它可以正常工作。如果没有运行Safari实例,它将启动一个新实例并立即终止它。

更新2: Safari只对有Flash嵌入的网站崩溃。使用上面的代码,我可以很好地打开google.com,但是YouTube视频会崩溃。

EN

回答 4

Stack Overflow用户

发布于 2010-06-03 06:47:04

尝试使用来自OpenURLsNSWorkspace方法

代码语言:javascript
代码运行次数:0
复制
- (BOOL) openURLs:(NSArray *)urls
         withAppBundleIdentifier:(NSString *)bundleIdentifier
         options:(NSWorkspaceLaunchOptions)options
         additionalEventParamDescriptor:(NSAppleEventDescriptor *)descriptor
         launchIdentifiers:(NSArray **)identifiers
票数 5
EN

Stack Overflow用户

发布于 2011-08-19 19:55:38

使用这个打开默认浏览器中的url .

代码语言:javascript
代码运行次数:0
复制
NSURL *url = [NSURL URLWithString:@"http://www.stackoverflow.com/"];
if( ![[NSWorkspace sharedWorkspace] openURL:url] )
    NSLog(@"Failed to open url: %@",[url description]);
票数 3
EN

Stack Overflow用户

发布于 2010-06-03 22:36:24

我上面列出的两个选项实际上适用于不包括Flash电影的网站。

我描述的崩溃似乎是一个bug,甚至可以用一个Applescript来再现。我对此提出了一个单独的问题(AppleScript to open URL in Safari crashes for Flash-based websites)

为了记录在案,我问题的答案是要么使用LSOpenFromURLSpec,要么使用下面的代码:

代码语言:javascript
代码运行次数:0
复制
NSWorkspace * ws = [NSWorkspace sharedWorkspace];
[ws openURLs: urls withAppBundleIdentifier:@"com.apple.Safari" 
  options: NSWorkspaceLaunchDefault
  additionalEventParamDescriptor: NULL
  launchIdentifiers: NULL];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2965615

复制
相关文章
AWS攻略——使用CodeBuild进行自动化构建和部署Lambda(Python)
        Aws Lambda是Amazon推出的“无服务架构”服务。我们只需要简单的上传代码,做些简单的配置,便可以使用。而且它是按运行时间收费,这对于低频访问的服务来说很划算。具体的介绍可以常见aws lambda的官网。(转载请指明出于breaksoftware的csdn博客)
方亮
2020/06/16
2.1K0
AWS攻略——使用CodeBuild进行自动化构建和部署Lambda(Python)
使用 GitHub CI 云构建和自动部署
最近这段时间把拖延已久的重构计划重新规划起来了。在经过一周多的努力终于把原先项目结构非常不堪的小站后端重构了一版。
Innei
2021/12/28
6250
.NET Core 3.0 构建和部署
在 dotnet build 或 dotnet publish 期间,将创建一个与你使用的 SDK 的环境和平台相匹配的可执行文件。 和其他本机可执行文件一样,可以使用这些可执行文件执行相同操作,例如:
solenovex
2019/11/03
1.4K0
Cube.js 试试这个新的数据分析开源工具
Cube是无界面商业智能平台。它帮助数据工程师和应用程序开发人员从现代数据存储中访问数据,将其组织为一致的定义,并将其交付给每个应用程序。Cube 旨在与所有支持 SQL 的数据源一起工作,包括像 Snowflake 或 Google BigQuery 这样的云数据仓库、像 Presto 或 Amazon Athena 这样的查询引擎,以及像 Postgres 这样的应用程序数据库。Cube 内置关系缓存引擎,为 API 请求提供亚秒级延迟和高并发。
大数据技术架构
2022/12/01
3.4K0
Cube.js 试试这个新的数据分析开源工具
Maven 自动化构建和部署
问题描述 通常情况下上面的提到开发过程中会涉及到多个团队。一个团队可能负责提交代码,另一个团队负责构建等等。很有可能由于涉及的人为操作和多团队环境的原因,任何一个步骤都可能出错。比如,较旧的版本没有在网络机器上更新,然后部署团队又重新部署了较早的构建版本。
acc8226
2022/05/17
4180
使用Kafka和ksqlDB构建和部署实时流处理ETL引擎
在Koverhoop,我们正在保险,医疗保健,房地产和离线分析领域建立一系列大型项目。对于我们的多租户团体保险经纪平台klient.ca,我们将建立强大的搜索功能。我们希望我们的搜索结果在键入时出现。以下是我们能够实现的目标,在本文中,我将讨论核心基础架构,我们如何完全自动化其部署以及如何也可以非常快速地对其进行设置。
IT大咖说
2020/12/29
2.7K0
使用Kafka和ksqlDB构建和部署实时流处理ETL引擎
如果是一组基因来把病人进行分组,可以······
生存分析最重要的就是分组,来检验你的分组的那个标准或者指标是否能区分生存,比如下面的代码,根据表达量高低进行分组:
生信技能树
2018/08/06
8810
如果是一组基因来把病人进行分组,可以······
aws生产实践-19:在aws的eks上部署kubesphere3.2.0并修改其分布
2.1.获取kubesphere的所有deployment和statefulset
千里行走
2021/12/27
1.1K0
aws生产实践-19:在aws的eks上部署kubesphere3.2.0并修改其分布
为什么AlertDialog要使用Builder来构建呢
首先说句废话,因为 AlertDialog 太过复杂,内部参数太多,然后不使用构建者模式那么 AlertDialog 的构造方法就可能是:
开发者
2019/12/26
5270
使用Kafka在生产环境中构建和部署可扩展的机器学习
生产环境中使用Apache Kafka的可扩展的机器学习 智能实时应用程序是任何行业的游戏规则改变者。机器学习及其子课题深度学习正在获得动力,因为机器学习使计算机能够在没有明确程序设计的情况下找到隐藏的见解。分析非结构化数据,图像识别,语音识别和智能决策需要此功能。这与使用Java,.NET或Python的传统编程有很大的不同。 虽然机器学习背后的概念并不新鲜,但大数据集和处理能力的可用性使得每个企业都可以构建强大的分析模型。任何行业都有大量的使用案例,通过在企业应用程序和微服务中应用分析模型来增加收入,
用户1263954
2018/05/30
1.3K0
Jenkins分布式构建和部署(master-slave)
Hi,大家好。在上一篇Jenkins系列文章:Jenkins用户权限管理,主要介绍安装权限插件,创建角色及给角色分配权限。
可可的测试小栈
2021/12/05
3.4K0
Jenkins分布式构建和部署(master-slave)
生化小课 | 肽可以通过其电离行为来区分
肽在链的两端仅含有一个游离α-氨基和一个游离的α-羧基(图3-15)。这些基团像在游离氨基酸中一样电离。所有非末端氨基酸的α-氨基和α-羧基共价连接在肽键中。它们不能再电离,因此不会影响肽的总酸碱行为。肽中的可电离R基团也有助于分子的整体酸碱特性(图 3-15)。
尐尐呅
2023/09/06
2490
生化小课 | 肽可以通过其电离行为来区分
我们为什么构建自己的 serverless 机器学习平台,而非使用 AWS Lambda?
本文最初发表于 Cortex 网站,经原作者 Caleb Kaiser 许可由 InfoQ 中文站翻译分享。
深度学习与Python
2021/02/22
3770
优步微服务架构 – 构建和部署应用程序
从我之前的博客,你必须已经对微服务架构有了基本的了解。在本博客中,您将深入了解架构概念并使用优步案例研究来实现它们。
Java架构师历程
2018/09/26
8610
优步微服务架构 – 构建和部署应用程序
三十、是否可以使用 count(*)
一、是否可以使用 count(*) 在 SQL 中,COUNT() 函数返回匹配指定条件的函数。 序号COUNT用法作用描述1COUNT(*)返回总记录数,包含 NULL 值2COUNT(1)与COUNT(*)的作用一样3COUNT(column_name)返回指定列的数目,NULL值不统计4COUNT(DISTINCT column_name)返回指定列不同值的数目,NULL值不统计 Tip: COUNT(*) 与 COUNT(column_name) 的作用不一样,如果列值包含 NULL ,统计结果就
喵叔
2022/05/06
4720
通过从JavaScript调用Rust来构建和扩充库【Programming(JavaScript)】
探索如何使用WebAssembly(Wasm)将Rust嵌入JavaScript。
Potato
2019/11/24
2.7K0
通过从JavaScript调用Rust来构建和扩充库【Programming(JavaScript)】
AWS CloudFront 如何设置 TTL
通常默认情况下 AWS CloudFront 的刷新时间是 24 个小时,可以理解就是如果你更新了 S3 的内容,你可能需要等 24 小时才能看到变化。
HoneyMoose
2022/01/06
1.4K0
使用gitlab ci/cd 来设置部署冻结 Deploy freezes 保存环境稳定
进入 setting, cicd 拉到最下面。 找到 deploy freezes 。 点击 添加
拿我格子衫来
2022/01/24
4870
使用gitlab ci/cd 来设置部署冻结 Deploy freezes 保存环境稳定
点击加载更多

相似问题

@RepositoryRestResource不会导出任何内容

21

修补程序和发布分支

13

执行maven修补程序发布

10

希望编辑/放置/修补程序,但错误显示“没有路由匹配[POST]”

43

如何发布Java程序的修补程序

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档