通过 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 浏览器中无效的主要内容,如果未能解决你的问题,请参考以下文章