通过 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 浏览器中无效的主要内容,如果未能解决你的问题,请参考以下文章
当活动屏幕首次在 Android Studio 上加载时,如何在隐藏的背景中发送带有当前位置数据的 SMS 文本消息?