代码之家  ›  专栏  ›  技术社区  ›  Kevin Bomberry

NSURL和iPhone SDK 3.0的问题

  •  1
  • Kevin Bomberry  · 技术社区  · 17 年前

    iPhone 3.0sdk最近出现了一个问题,它如何处理自动打电话的NSURL方法。过去,你可以调用一个方法(NSURL),传入一个带有URL前缀的字符串(tel://,sms等),iPhone操作系统会将消息发送到设备,如iTunes、App Store、Phone、sms、Mail、Safari等。。。代码如下:

    [openURL:[NSURL URLWithString:@"tel://8005551212"]];  
    

    当调用该方法时,将自动拨打电话。在iPhoneOS3.0中,当调用该方法时,应用程序会弹出一个对话框,要求确认电话。这打破了几个现有的应用,以及一个我们刚刚推到应用商店审查。

    有人能想出解决这个问题的办法吗?我现在不知所措,不知该怎么办,也不知道该用什么方法来处理这个新扳手。

    blogged 关于这一点,建议人们联系苹果公司,让他们意识到这个问题。我还推荐了一个我和一个朋友正在考虑的解决方案——也就是使用与位置感知应用程序相同的“授权”;应用程序知道其位置感知,并询问用户是否可以使用其位置。

    同样,如果有人能解决这个问题(这在iPhone SDK的范围内,不会被苹果拒绝),请告诉我;我将非常感激。

    更新:JulianRomeroNieto对这个bug有一个很好的描述,引用了(更新的)苹果文档并展示了当前的问题。你可以在操作雷达上看到他的帖子 here

    5 回复  |  直到 9 年前
        1
  •  2
  •   Alex Taylor    17 年前

    我相信这是一个安全功能-想象一下,一个应用程序在每天凌晨3点打900电话,持续10分钟。如果你将其与新的“应用内购买”API进行比较——那就差不多了。

        2
  •  1
  •   Grouchal    17 年前

    你不能修复这个问题,因为这是你想要的-任何你做的“修复”这个问题将导致一个应用程序不会被批准。

    如果应用程序可以选择在未经用户同意的情况下拨打某个号码,则认为用户体验不好。软件有可能在用户意识不到的情况下拨打“高级”号码,而这些号码会让用户付出很大的代价。

    这是所有移动软件平台和操作系统的标准——如果它只是在OS3.0中改变了,那么这表明这一定是一个最初苹果认为他们可以解决的问题。不过,我认为,移动运营商将向苹果施压,要求苹果经常推出这项服务,但最终不得不向用户退款——但他们已经将钱支付给了“特优”号码。

    我不确定“溢价”数字在美国是否像在欧洲那样存在,也许这是很难理解的原因。

        3
  •  0
  •   Michael Langford Michael Langford    17 年前

    tel://的RFC表示不允许通过tel:scheme自动拨号。

    所以他们必须在遵守RFC和破坏这几个应用程序之间做出选择。

    我希望选择忽略RFC,至少允许应用程序在允许的情况下继续拨号。

        4
  •  0
  •   John John    17 年前

    我怀疑,这是否是苹果有意推动用户购买新iPhone,如果他们想要声控拨号-这个问题打破了所有第三方声控拨号应用,使它们不安全,基本上没有用处。

    让我们继续向苹果施压,让它成为用户可配置的设置。

        5
  •  0
  •   stefanB    17 年前

    也许你指的是新引入的功能而不是问题?

    我不认为你会让苹果删除确认弹出窗口,特别是如果它是符合RFC。

    Joel (http://www.joelonsoftware.com/items/2009/06/10c.html) 关于 应用程序:

    一个好的平台总是 不仅仅是填补空白。这些是 不太可能考虑核心 不是每个人都会去的 想要。完全没有机会 苹果将永远 为牙医提供iPhone的功能。 零。

    如果没有我的同意,我不希望某些应用程序打电话、发短信甚至连接到互联网(生活在一个无限移动数据计划仍在遥远未来的国家)。

    当顾客抱怨账单上的未知电话时,接线员当然会头疼。