创建一个链接,可在任何设备上打开相应的地图应用程序,并提供前往目的地的路线

2023-12-25

我宁愿认为这并不难找到,但看起来像您所期望的那样,找到一篇很棒的跨设备文章并不容易。

我想创建一个链接,打开移动设备的浏览器并浏览谷歌地图,或者打开地图应用程序(Apple 地图或谷歌地图)并直接开始路线,即:从当前位置开始,在给定点结束(纬度/经度)。

我可以在两个设备(除了浏览器堆栈)上进行测试:Android 和 iPhone。

以下链接仅适用于 Android:

<a href="http://maps.google.com/maps?daddr=lat,long&amp;ll=">Take me there!</a>

在 iPhone 的 Chrome 中点击此链接,会奇怪地打开桌面版 Google 地图,并在移动应用程序上显示广告......

这个仅适用于 iOS,打开 Apple 地图要求我输入起始位置(我可以选择“当前位置”)并开始路线 = 所需的行为。在 Android 上点击此链接完全失败:

<a href="maps://maps.google.com/maps?daddr=lat,long&amp;ll=">Take me there!</a>

注意maps://协议。

是否有一种优雅的跨设备方式来创建此类链接?一个链接适用于所有主要手机?

Thanks

更新:找到解决方案(有点)

这是我的想法。尽管它正在发挥作用,但它并不完全是我想象的那样。

var ua = navigator.userAgent.toLowerCase(),
    plat = navigator.platform,
    protocol = '',
    a,
    href;

$.browser.device = ua.match(/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera/i) ? ua.match(/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera/i)[0] : false;


if ($.browser.device) {
    switch($.browser.device) {
        case 'iphone':
        case 'ipad':
        case 'ipod':
            function iOSversion() {
              if (/iP(hone|od|ad)/.test(navigator.platform)) {
                // supports iOS 2.0 and later: <http://bit. ly/TJjs1V>
                var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
                return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)];
              }
            }

            var ver = iOSversion() || [0];

            if (ver[0] >= 6) {
              protocol = 'maps://';
            }
            else {
                protocol = 'http://maps.google.com/maps';
            }
        break;

        case 'android':
        default:
            protocol = 'http://maps.google.com/maps';
        break;
    }

a.attr('href', protocol + href)

the maps://协议是苹果地图应用程序的 url 方案,该应用程序仅在 iOS 6 或更高版本上开始工作。有多种方法可以测试 gmaps 是否已安装,然后选择如何处理 url,但这对于我的意图来说有点太多了。所以我最终使用上述参数创建了一个maps://或maps.google.com/链接。

** 更新 **

sadly, $.浏览器.设备自 jquery 1.9 起不再工作 (来源 -http://api.jquery.com/jquery.browser http://api.jquery.com/jquery.browser )


我很少使用手机,所以我不知道这是否有效。但仅从 html/javascript 的角度来看,您可以根据用户的设备打开不同的 url 吗?

<a style="cursor: pointer;" onclick="myNavFunc()">Take me there!</a>

function myNavFunc(){
    // If it's an iPhone..
    if( (navigator.platform.indexOf("iPhone") != -1) 
        || (navigator.platform.indexOf("iPod") != -1)
        || (navigator.platform.indexOf("iPad") != -1))
         window.open("maps://www.google.com/maps/dir/?api=1&travelmode=driving&layer=traffic&destination=[YOUR_LAT],[YOUR_LNG]");
    else
         window.open("https://www.google.com/maps/dir/?api=1&travelmode=driving&layer=traffic&destination=[YOUR_LAT],[YOUR_LNG]");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建一个链接,可在任何设备上打开相应的地图应用程序,并提供前往目的地的路线 的相关文章

随机推荐

  • Rails + Capybara-webkit – javascript 代码覆盖率?

    我正在考虑使用 capybara webkit 对应用程序进行一些接近现实的测试 这是绝对必要的 因为该应用程序具有非常丰富的基于 JS 的 UI 而 Rails 部分主要是 API 调用 问题是 是否有任何工具可以集成到测试管道中 可以检
  • 从 javascript 代码中调用 Golang 函数

    我正在开发一个 web 应用程序 它已经有布局 css bootstrap v 3 和 index html 我已经成功加载了 Golang 并运行的项目 我嵌入了一个注册按钮 单击该按钮后应该从处理 http 请求的 server go
  • javascript 正则表达式求值导致浏览器挂起

    我在使用正则表达式进行自定义验证时遇到问题 我有一个不引人注目的方法 jQuery validator addMethod isRegex function value element params if value length lt 1
  • ASP.NET core 在 IIS 中运行启动错误日志记录

    如何捕获 IIS 中托管的 ASP NET Core 应用程序中的启动错误 我正在尝试捕获抛出的异常ConfigureServices这只发生在 IIS 托管环境中 我发现这是作为加载的证书文件ConfigureServices丢失 并且在
  • 为什么 MongoDB 在多线程客户端上比在单线程客户端上表现更好?

    我们最近使用 YCSB 对 Oracle 10g 和 MongoDB 进行了基准测试 https github com brianfrankcooper YCSB wiki https github com brianfrankcooper
  • Erlang mysql 示例

    只是想知道是否有人可以给出使用 erlang mysql 模块的工作示例 http code google com p erlang mysql driver http code google com p erlang mysql driv
  • 我可以使用 Lumen 在中间件中获取当前路线信息吗?

    我需要在中间件中拥有当前找到的控制器和操作 以便我可以进行一些身份验证 但我发现这是不可能的 因为管道就像 Middleware1 gt Middleware2 gt 进行调度 gt controller action gt Middlew
  • 了解为什么 drop.duplicates() 不起作用 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 假设我有一个 2 行 pandas 数据框 是通过对更大的数据框进行子集化而获得的 TransID rev offer qs lt
  • 使用 Discord.js 向频道发送消息时遇到问题 [重复]

    这个问题在这里已经有答案了 我正在尝试创建一个机器人 一旦用户发送特定消息 该机器人就会向频道发送消息 我已经设法让它在机器人登录后发送一条消息 但是client on 函数不会做任何事情 如果我做错了什么 请告诉我 提前谢谢 const
  • OpenCV中如何对复数矩阵求逆?

    我在做复杂矩阵的逆时遇到麻烦 据我所知 复杂矩阵只是一个双通道矩阵 CV 32FC2 CV 64FC2 假设我有一个矩阵 C Mat C 2 2 CV 64FC2 C at
  • 何时在 Ruby 中使用 `require`、`load` 或 `autoload`?

    我理解之间的细微差别require load and autoload在 Ruby 中 但我的问题是 你怎么知道使用哪一个 除了能够 包裹 load在匿名模块中 require似乎是首选 但是之后autoload允许您延迟加载文件 这听起来
  • 保持 Android 表格中所有行的列对齐

    我在 Android 上遇到了一个问题 无论我尝试什么都无法解决 想象一个表格布局 有 3 个表格行 每行有两个文本字段 Image 由于新用户限制 无法在此处添加图像 http imgim com tbl behaviour png 现在
  • 基于 Zend Framework 的项目

    在哪里可以看到具有漂亮架构的 ZF bssed 项目 数据映射器 服务等 这是一些应用程序 http www framework zend com wiki pages viewpage action pageId 14134 http w
  • 如何在GAE上设置中级证书?

    我为我的自定义域购买了 SSL 认证 并设置了我的 GAE 项目 在新的 Firefox 版本发布之前 它在大多数浏览器上都运行良好 Firefox 拒绝了我的 SSL 认证 我使用过 SSL Checker 它给了我反馈 并非所有网络浏览
  • 用于计费协议的 Paypal Webhook 收到付款了吗?

    是否有在收到计费协议付款时触发的 Webhook 我创建了一个计费计划 并让用户接受每月定期付款的计费协议 当计费协议执行时 webhookBILLING SUBSCRIPTION CREATED fires 是否有一个 webhook 在
  • 对多个文件运行 Excel 宏

    我有一个 Excel 宏保存在一个空白工作簿和多个数据工作簿中 目前 我分别打开宏文件和每个数据文件 并使用键盘快捷键在每个文件上运行宏 有没有一种方法可以在所有数据工作簿上运行宏而无需打开它们 或者使用 一个批处理文件 VBA VBScr
  • Google 地图 - 获取区域/邻里的多边形边界

    我想在 Google Maps API v3 上进行简单搜索 并得到带有彩色多边形的地图 如下图所示 搜索 皮涅罗斯 圣保罗 我通过使用得到它维基地图 http WikiMapia org data 步骤是 Open 维基地图 http W
  • 如何仅列出两次提交之间更改的文件名

    我在存储库中有一堆提交 我想查看两次提交之间更改的文件列表 来自SHA1 to SHA2 我应该使用什么命令 git diff name only SHA1 SHA2 您只需要包含足够的 SHA 哈希来识别提交 SHA 的顺序并不重要 输出
  • 如何使用 BertForMaskedLM 或 BertModel 来计算句子的困惑度?

    我想使用 BertForMaskedLM 或 BertModel 来计算句子的困惑度 所以我编写了这样的代码 import numpy as np import torch import torch nn as nn from transf
  • 创建一个链接,可在任何设备上打开相应的地图应用程序,并提供前往目的地的路线

    我宁愿认为这并不难找到 但看起来像您所期望的那样 找到一篇很棒的跨设备文章并不容易 我想创建一个链接 打开移动设备的浏览器并浏览谷歌地图 或者打开地图应用程序 Apple 地图或谷歌地图 并直接开始路线 即 从当前位置开始 在给定点结束 纬