我完全无法使用他们的文档所示的方法从BBOS5设备的BlackBerry浏览器打开BBMaps。这个功能真的坏了吗?文档真的错了吗?还是我做错了什么?
在BBOS 4.5中添加了对这一点的支持,据称在版本6中一直存在。黑莓论坛上有一条关于它的老帖子;该线程中的一个示例网站在Storm 2上不工作,而另一个应用程序已关闭。
根据文件,据称BBOS5同时支持KML和专有的BlackBerry位置标记语言XLOC。
我认为至少XLOC可以工作,因为据称版本6保留了对XLOC的支持,并放弃了对KML的支持。但是没有。
我在Storm 2模拟器中运行5.0.0.713,在物理Storm 2上运行5.0.0.015。
我认为文件是错误的。我所能做的一切都不起作用——KML、KMZ、XLOC、动态生成、具有适当MIME类型的静态文件等等。这真的不应该这么难!
这里有一些值得思考的地方:如果你在浏览器中访问maps.blackberry.com上的地图。。。为什么没有在黑莓地图中打开它的选项?
由于这是一个专业的网络项目,我不能公开分享环境。不过,我可以在我的个人服务器上复制相关部分。这真的很令人沮丧,因为我们真的很想支持黑莓用户,但我们开始认为这是不可能的。
如果有人能拿出一个这样做的例子(特别是黑莓风暴2),我将不胜感激。如果有人能证实这是不可能的,那也是有价值的。
所以!答案在于无视所有这些,并使用BlackBerry Javascript API。只需根据规范将地址创建为json对象,然后调用blackberrylaunch.newMap,如下所示:
<script type="text/javascript">
var workAddress = {
"address1": "1600 Pennsylvania Ave.",
"city": "Washington",
"country": "USA",
"stateProvince": "DC",
"zipPostal": "20500"
};
blackberry.launch.newMap({ "address": workAddress });
</script>
我知道必须有一个合理的方法来做这件事!我有点担心这似乎很少被使用,但它在Storm 2上有效,据称在最近的平台上也有效,所以我现在很满意。
根据规范,您还可以传递lat/long和XLOC标记。我还没有测试过。似乎没有人支持KML,这有点令人遗憾。
(当然,对于多平台web开发,您需要添加对blackberry对象等的检查。)