通过 SMS 发送的位置链接在 Android 浏览器中有效,但在 iPhone 浏览器中无效

Posted

技术标签:

【中文标题】通过 SMS 发送的位置链接在 Android 浏览器中有效,但在 iPhone 浏览器中无效【英文标题】:Location link sent via SMS is working in Android browser but not on iPhone browser 【发布时间】:2014-09-16 17:53:31 【问题描述】:

我正在开发一个可以通过 SMS 发送用户当前位置的 android 应用。

为了发送短信,我使用以下代码:

String phoneNumber = "123456" //example
            SmsManager smsManager = SmsManager.getDefault();
            StringBuilder smsBody = new StringBuilder();
            smsBody.append("This is my location:\n");
String uri = "http://maps.google.com/?q=loc:" + location.getLatitude()
                + "+" + location.getLongitude();
            smsBody.append(uri);
            smsManager.sendTextMessage(phoneNumber, null, smsBody.toString(),
                    null, null);

现在,当我将它发送到 Android 设备时,我会收到一条带有链接的短信,它可以在本地浏览器和 Google Chrome 中完美打开。

但是,如果我将它发送到 iPhone 设备 - 使用本机浏览器 (Safari) - 它会给我一个错误,它无法打开地址,因为它不正确,但如果我使用 Chrome 打开它(也在 iPhone 上) - 完美运行。

有人知道为什么会这样吗?有什么解决方法吗?

这是收到的 SMS 消息的精确副本:

这是我的位置: http://maps.google.com/?q=loc:32.05688742112759+34.899831548802496

非常感谢!

编辑:

这是我在运行 ios7 的 iPhone 4 上尝试打开链接时遇到的错误的屏幕截图

【问题讨论】:

你试过用https代替http吗? 【参考方案1】:

这是因为 iOS 支持它的原生地图。您的查询网址仅适用于谷歌地图。 你可以试试这个 url for iOS: "http://maps.apple.com/?q=loc:32.05688742112759+34.899831548802496"

【讨论】:

好吧,看到它在浏览器中打开,它应该支持它,而且显然 iPhone 5 确实支持它(见下面的答案)。您有任何来源或链接来支持您的答案吗?谢谢! 你可以在这里查看:developer.apple.com/library/ios/featuredarticles/… 嗯,它说你可以使用那种链接形式,而不是必须的。但是,根据你的回答,我也找到了这个答案here。当我按照您所说的方式使用链接时,它确实适用于 Android 和 iOS。感谢您帮助解决我的问题!【参考方案2】:

IOS不支持短信定位

【讨论】:

您能否提供有关此事实的官方或可信链接?非常感谢 嗯,这是一个普通的 http - 它应该在 Safari 中打开

以上是关于通过 SMS 发送的位置链接在 Android 浏览器中有效,但在 iPhone 浏览器中无效的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 SMS 检索 GPS 位置

当活动屏幕首次在 Android Studio 上加载时,如何在隐藏的背景中发送带有当前位置数据的 SMS 文本消息?

我们可以通过Android中的用户电话号码找到用户吗?

通过 Android Intent 发送到 Whatsapp 的链接

发送带有 php 链接的短信

如何在没有 SMS_READ 或 Android 中的类似权限的情况下发送短信并接收结果