我写了一个方法来从用户那里获取addressinfo,然后在谷歌的地图上显示它。这是我写的方法
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);
}
当我运行这个时,它会给我错误,无法调用undefined的方法loadurl。现在,如果我只用一个实际地址替换地址,它会给我同样的错误。任何想法在这里可能出错?
答案 0 :(得分:0)
请尝试使用此代码:
window.open("http://maps.google.co.uk/?q=" + address, "_system");
答案 1 :(得分:0)
虽然通过在浏览器上调试很好地开发了phonegap应用程序,但是在某些方面,这种方法会失败。
其中一个是navigator.app
,因为它与设备相关的性质,它只在实际运行在移动设备上时存在,在浏览器上该对象是未定义的。
当我不得不进行多次编码/设备/ debuuging迭代时,我不得不退出浏览器方法并使用genymotion emulator,这是virtualbox的包装,它减少了编码/结果的长度从大约5分钟到大约1分钟。
答案 2 :(得分: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时,您的页面将在应用程序中的新浏览器窗口中打开,该窗口可以在您的应用程序中关闭。