我目前正在开发一个应用程序,需要打开一个浏览器来显示一个网页。 要做到这一点,我使用[UIApplication sharedApplication] openURL方法与URL。 在iOS 6中,这是完美的,但是在iOS 7中,它冻结了10多秒的应用程序,然后打开浏览器,一切都很好。 这发生在使用临时供应。 互联网上有人评论说,这是一个已知的问题,但是,有一个评论是我能find关于这个问题。
我有一个下载应用程序button的HTML页面。 当被iOS用户点击时,它通过itms-services将用户redirect到App Store。 我在这里使用的链接是: window.location.replace("itms-apps://itunes.apple.com/app/id578505616"); 它在移动浏览器上看起来如此: Facebook / Pinterest有一个应用程序内浏览器,要求用户的同意,然后用取消或打开应用程序,打开应用程序打开外部链接的警报框的formsredirect用户的应用程序。 它看起来像这样: 它看起来像这样的警报框: 假设用户正在使用iOS设备。 这里预期的行为是当打开应用程序button被点击时,用户被redirect到App Store应用程序。 但是,在实际redirect发生之前,我们看到大约10秒的延迟。 请参阅以下video: 笔记: 我似乎无法在任何时候重现这一点。 有时只能重现。 抱歉! 一旦设备第一次延迟,所有后续的AppStores链接将会很快,直到大约晚了一天。 重新启动手机和/或清除浏览器caching和/或重新安装Facebook / Pinterest无助于重现这一点。 我尝试用https://itunes.apple.com/us/app/trusper-tips-tutorials-how/id578505616?mt=8replaceitms-apps://链接,但是我们仍然遇到延迟时间。 延迟似乎正好是10秒。 为什么这个延迟发生? 这似乎是一个不好的用户体验。 我目前的理论是,问题出在苹果方面。 原因是,一旦打开应用程序button被点击,它是在我们的网站,以及Facebook / Pinterest的应用程序的手中。 我认为,一旦button被点击,iOS正在处理从一个应用程序到另一个应用程序的实际上下文切换。 因此,这表明实际打开URL的系统调用挂起,或打开App Store应用程序的系统调用是? 但是,我无法certificate任何一个是真的还是假的。 有没有人有更好的解释? [编辑04/02/2015]我可以证实,这个问题依然存在,因为我的手机(iPhone 5S W / iOS 8.2)仍然存在。 我做了一些进一步的研究,发现这篇文章,我认为这是一个iOS系统相关的错误: OpenUrl冻结了超过10秒的应用程序
从URL启动应用程序时,URL是否刚刚启动应用程序,或者是否正在恢复已处于暂停状态的应用程序之间有区别。 我的问题是,如何从 URL中debugging“全新启动”的过程? 点击Xcode中的“运行”会自动打开应用程序。 然后,我必须暂停应用才能访问Safari并访问我的testing网站。 但是,如果我closures我的挂起的应用程序,Xcode不再附加到它,我无法debugging。
如何通过使用Swift作为编程语言和OSX作为plattform在系统默认浏览器中打开一个url。 我发现很多与UIApplication一样 UIApplication.sharedApplication().openURL(NSURL(string: object.url)) 但是这只适用于iOS而不适用于OSX 我发现启动服务没有快速的例子,OSX 10.10有很多不推荐的例子 欢迎任何帮助 – 谢谢。
更新到10.3后,我的应用程序不再使用openURL:options:completionHandler:方法在应用程序中按下通话button后自动拨打一个电话号码。 相反,每次都会出现提示以确认用户的意图。 根据Apple文档: 电话urlscheme用于启动iOS设备上的电话应用程序,并启动拨打指定的电话号码。 当用户点击网页中的电话链接时,iOS会显示一个提示,询问用户是否真的想拨打电话号码,并在用户接受时启动拨号。 当用户使用本地应用程序中的telscheme打开URL时,iOS不会显示警报并启动拨号,而不会进一步提示用户。 但是,可以将本机应用程序configuration为显示自己的警报。 据此,提示显示网页,但不显示在本机iOS应用程序。 这可能是10.3中的一个错误吗? 还是有一个新的function,我需要使用或新的属性,包括在info.plist我不知道? 谢谢。
是否有可能从另一个应用程序内启动任何iPhone应用程序? 例如, 在我的应用程序中,如果我想要用户按下button并右键启动到电话应用程序(closures当前应用程序,打开电话应用程序) 。 这可能吗? 我知道这可以通过电话URL链接来打电话,但是我想要启动电话应用程序而不拨打任何特定的号码。