【问题标题】:How to launch another app from an iPhone app如何从 iPhone 应用程序启动另一个应用程序
【发布时间】:2012-10-20 11:22:33
【问题描述】:

我正在我的 iPhone 应用程序中开发地图应用程序。

我有一个按钮go

当用户在此方法中单击此按钮时,我想检查用户是否在他的 iphone 上安装了 waze 应用程序。如果是,则导航到 waze 应用程序,否则打开 iPhone 的默认地图应用程序。

【问题讨论】:

    标签: iphone objective-c ios mapkit


    【解决方案1】:

    尝试这样做:

    NSString *wazeAppURL = @"waze://";
    NSString *mapsAppURL = @"maps://";
    
    BOOL canOpenURL = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:wazeAppURL]];
    
    NSString *url = canOpenURL ? wazeAppURL : mapsAppURL;
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
    

    在这里,canOpenURL 允许您测试您的 iPhone 上是否安装了 Waze 应用程序。如果 iPhone 可以打开 url waze:// 这意味着您已经拥有该应用程序,它将启动它。否则它将启动默认的地图应用程序。不会调用 Safari。

    【讨论】:

    • 嗨,如果我们打开 URL,控件将转到 safari,我将在哪里获得 URL 应用商店 URL 或其他任何东西。我的应用程序点来自我的应用程序,用户可以在单击时通过 waze 导航如果 waze 应用程序安装在用户手机中,则在按钮上,否则默认应用程序。我如何检查 waze 应用程序是否安装在用户的 iPhone 中。请您详细说明所有这些内容。
    • @bs7 我们如何获取 iphone 中所有路由应用程序的列表,例如在我的手机中,我有谷歌地图、苹果地图和 waze。我怎样才能得到它?
    • 有没有办法在外部应用程序关闭时获得响应? Android 上的 onActivityResult 之类的东西?
    【解决方案2】:

    要打开应用程序,您需要调用

    BOOL canOpenURL = [[UIApplication sharedApplication] 
                           canOpenURL:[NSURL URLWithString:@"app://"]];
    if ( canOpenUrl ) [[UIApplication sharedApplication] 
                           openURL:[NSURL URLWithString:url]];
    

    要查找所有网址,请转到此页面:http://handleopenurl.com/

    尤其是位智,http://handleopenurl.com/scheme/waze

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      请注意,在 iOS 上,您还可以导航到 Google 地图 - 并传递查询字符串或地理点。这是导航到特定地理点的一个示例:

      if (self.mapView.userLocation.location) {
          NSString *urlAsString = [NSString stringWithFormat:@"comgooglemaps://?q=%f,%f", self.mapView.userLocation.location.coordinate.latitude, self.mapView.userLocation.location.coordinate.longitude];
          if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:urlAsString]]) {
              [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlAsString]];
          }
      } 
      

      只是一个提升用户体验的建议。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多