2013-12-08 68 views
0

我正在制作一个as3 AIR应用程序。我想把电话号码放在应用程序中。在iPhone上,当用户点击“电话号码”按钮,它调用电话与此类似:As3 AIR如何检查设备是否支持tel?

str = "tel:1-415-555-1212"; 
var urlReq:URLReq = new URLRequest(str); 
navigateToURL(urlReq); 

这使得在用户本地拨号的电话号码(iOS上的实际拨打为您和也发送)。然而,在iPad上它什么都不做。我想先检查是否支持tel。如果是,通常情况下。如果不是,则显示带有电话号码的弹出窗口。我想为android手机和平板电脑做几乎完全相同的操作。

回答

1

据我所知,在AIR中无法单独做到这一点。在Objective-C中,您可以使用名为canOpenURL的方法来完成此操作。相当微不足道。没有AIR等价物。

所以,你有两个选择:

  1. 创建/找到一个ANE,让这一访问。我认为distriqt提供了一个这样做,虽然他们不便宜。不过,这将是一个相当容易创建的方式,所以它可能值得你自己去做。
  2. 您可以创建一个可以区分iPad和iPhone的方法。你可以通过多种方式来做到这一点(主题为另一个问题)。然而,我不推荐这种方法。这依赖于iPad无法拨打电话。有可能存在这样的应用程序,允许您通过tel URI完成该操作。鉴于苹果的一般做法,这是不可能的,但可能的。

编辑:我昨天终于自己需要这个功能,所以我追捕了一个提供功能的ANE。非常感谢StickSports发布他们所有的ANE。 https://github.com/StickSports/ANE-Can-Open-URL

实例:

public static function shareTwitter(url:String, message:String = null):void { 
    var msg:String = (message ? message : "") + " " + url; 
    var nurl:String = "twitter://post?message=" + msg; 
    var web:String = "https://twitter.com/intent/tweet?text=" + message + "&url=" + url; 

    if (CanOpenUrl.canOpen(nurl)) { 
     navigateToURL(new URLRequest(nurl)); 
    } 
    else { 
     navigateToURL(new URLRequest(web)); 
    } 
} 
+0

感谢。我想我们最终总会显示弹出窗口。这种方式当文字被点击时,它会在手机上做些事情,并在平板电脑上无所事事,因为用户可以看到这些信息。 – Fans

+0

是的,我过去也是这样做的。在iOS上,它也会自动拨号,这很烦人。所以弹出窗口给了他们防止自动拨号的选项 –

+0

@Fans我刚刚编辑了我的答案,并附上了我昨天在需要此功能时找到的ANE链接。希望它有帮助 –

相关问题