3

我写了一个方法来从用户那里获取地址信息,然后在谷歌的地图上显示它。这是我写的方法

function doRemoteMapEmployee(e) {
var mapEmployeeAddressLine1 = (EmployeeInfo.at(0).EmployeeAddressLine1 !== null) ? EmployeeInfo.at(0).EmployeeAddressLine1 + ', ' : '', 
mapEmployeeAddressLine2 = (EmployeeInfo.at(0).EmployeeAddressLine2 !== null) ? EmployeeInfo.at(0).EmployeeAddressLine2 + ', ' : '', 
mapEmployeeAddressLine3 = (EmployeeInfo.at(0).EmployeeAddressLine3 !== null) ? EmployeeInfo.at(0).EmployeeAddressLine3 + ', ' : '', 
mapEmployeeAddressCityTown = (EmployeeInfo.at(0).EmployeeAddressCityTown !== null) ? EmployeeInfo.at(0).EmployeeAddressCityTown + ', ' : '', 
mapEmployeeAddressZipPostCode = (EmployeeInfo.at(0).EmployeeAddressZipPostCode !== null) ? EmployeeInfo.at(0).EmployeeAddressZipPostCode : '', 
address = mapEmployeeAddressLine1 + mapEmployeeAddressLine2 + mapEmployeeAddressLine3 + mapEmployeeAddressCityTown + mapEmployeeAddressZipPostCode;
navigator.app.loadUrl("http://maps.google.co.uk/?q=" + address);
}

当我运行它时,它会给我错误无法调用未定义的方法 loadurl。现在,如果我只是用实际地址替换地址,它会给我同样的错误。知道这里可能出了什么问题吗?

4

3 回答 3

0

虽然 phonegap 应用程序通过在浏览器上调试得到了很好的开发,但这种方法在某些领域是失败的。其中之一是navigator.app,由于其与设备相关的性质,它仅在实际运行在移动设备上时才存在,在浏览器上该对象只是未定义的。

当我不得不进行多次编码/设备/调试迭代时,我不得不退出浏览器方法并使用genymotion emulator,它是virtualbox的包装器,对我来说将编码/结果周期的长度从大约 5 分钟减少到大约 1 分钟。

于 2014-01-14T17:16:49.643 回答
0

尝试改用这个:

window.open("http://maps.google.co.uk/?q=" + address, "_system");
于 2014-01-14T17:04:57.853 回答
0

我建议使用 inAppBrowser 插件:

http://docs.phonegap.com/en/3.3.0/cordova_inappbrowser_inappbrowser.md.html#InAppBrowser

您可以通过运行安装它:

phonegap local add org.apache.cordova.inappbrowser

然后,当您运行 window.open 时,您的页面将在应用程序中的新浏览器窗口中打开,该浏览器窗口可以在您的应用程序中关闭。

于 2014-01-14T17:34:15.700 回答