Firemonkey:如何从我的应用程序中打开本机 IOS 地图?

Posted

技术标签:

【中文标题】Firemonkey:如何从我的应用程序中打开本机 IOS 地图?【英文标题】:Firemonkey: How can I open native IOS maps from my app? 【发布时间】:2016-11-04 10:37:18 【问题描述】:

我需要做的只是打开并向ios原生地图发送一个字符串。该字符串包含地址。

我发现这段代码在 android 上可以正常工作,但在 IOS 上就不行,为什么?

function OpenNavigation(const Q: string; const Coord: TLocationCoord2D): Boolean;
var
  CoordString: String;
begin
  //Open in Google Maps
  $IFDEF ANDROID
  exit(OpenURL('http://maps.google.com/?q=' + Q));
  $ELSE

  //In iOS, if Google Maps is installed, use it, otherwise, use Apple Maps
  //If we have coordinates, use them as the start address
  $IFDEF IOS
  exit(OpenURL('http://maps.apple.com/?daddr=' + Q));
  //Get a string of the longitute and latitute seperated by a comma if set
  if (Coord.Latitude <> 0.0) or (Coord.Longitude <> 0.0) then
  begin
    CoordString := Coord.Latitude.ToString + ',' + Coord.Longitude.ToString;
  end
  else begin
    CoordString := '';
  end;
  if not OpenURL('comgooglemaps://?daddr=' + Q) then
  begin
    if (0.0 < CoordString.Length) then
    begin
      exit(OpenURL('http://maps.apple.com/?daddr=' + Q + '&saddr=loc:' + CoordString));
    end
    else begin
      exit(OpenURL('http://maps.apple.com/?daddr=' + Q));
    end;
  end
  else begin
    exit(true);
  end;
  $ELSE
  //Unsupported platform
  exit(false);
  $ENDIF IOS
  $ENDIF ANDROID
end;

编辑:我使用的版本是 RadStudio 10.1 Berlin

EDIT²:我将标签“字典”两次更改为“地图”,但改回字典 idk 为什么。

【问题讨论】:

【参考方案1】:

要从另一个 iOS 应用打开地图应用,您可以执行以下操作:

UIApplication.sharedApplication().openURL(NSURL(string: "http://maps.apple.com/?address=yourAddressHere")!)

您还可以使用CLGeocoder 获取CLLocation 位置

请查看此stack overflow's answer 了解更多详情。

【讨论】:

谢谢老兄,但这段代码在 Firemonkey 上不起作用,我猜这是 Swift。还是谢谢... 我没有使用 FireMonkey 的经验,但可能你可以更改 url 来访问地图,并使用“maps.apple.com/?address=yourAddressHere”也可以看看这个***.com/questions/23877683/… 没用。我不知道该怎么办了,我在互联网上找不到答案。这令人沮丧……【参考方案2】:

我找到了答案:

OpenURL('http://maps.apple.com/?daddr=YourAddress');

【讨论】:

以上是关于Firemonkey:如何从我的应用程序中打开本机 IOS 地图?的主要内容,如果未能解决你的问题,请参考以下文章

FBSDKLoginManager 未在本机 ios 应用程序中打开登录对话框

从我的本机应用程序将 cookie 传递给 SFSafariViewController

如何从我的应用程序中打开网页?

android:我如何从我的应用程序中打开另一个应用程序?

使用 reactjs(非本机)从我的网站创建一个移动应用程序

如何从我的 android 应用程序打开 youtube 应用程序主页活动?