PhoneGap无法调用undefined的方法loadurl

时间:2012-09-05 10:26:18

标签: javascript cordova

我写了一个方法来从用户那里获取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。现在,如果我只用一个实际地址替换地址,它会给我同样的错误。任何想法在这里可能出错?

3 个答案:

答案 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时,您的页面将在应用程序中的新浏览器窗口中打开,该窗口可以在您的应用程序中关闭。