Javascript PhoneGap无法调用未定义的方法loadurl

Javascript PhoneGap无法调用未定义的方法loadurl,javascript,cordova,Javascript,Cordova,我写了一个方法,从用户那里获取地址信息,然后在谷歌地图上显示。这就是我写的方法 function doRemoteMapEmployee(e) { var mapEmployeeAddressLine1 = (EmployeeInfo.at(0).EmployeeAddressLine1 !== null) ? EmployeeInfo.at(0).EmployeeAddressLine1 + ', ' : '', mapEmployeeAddressLine2 = (EmployeeInfo

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

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方法。现在,如果我只是用实际地址替换地址,它会给我同样的错误。你知道这里会出什么问题吗?

试着用这个代替:

window.open("http://maps.google.co.uk/?q=" + address, "_system");

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


当我不得不进行多次编码/设备/去毛刺迭代时,我不得不退出浏览器方法并使用它,这是一个包装器,将编码/结果周期的长度从大约5分钟减少到大约1分钟。

我建议使用inAppBrowser插件:

您可以通过运行以下命令来安装:

phonegap local add org.apache.cordova.inappbrowser

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

根据错误消息,
navigator.app
未定义。您是否确保在HTML中包含cordova.js文件?我刚刚尝试在iOS模拟器中的PhoneGap应用程序上检查
navigator.app
,该变量未定义。我以前没见过这个,是否需要安装插件以启用loadUrl功能?当从浏览器运行时,这会在另一个选项卡上打开url,但由于phonegap应用程序没有选项卡控制,它只会隐藏应用程序视图,直到关闭。是否希望此url在常规浏览器中打开?您可以使用
窗口。open
与PhoneGap的应用浏览器@DawsonLoudon-没错。我想在浏览器中打开它(或者更重要的是,如果它是youtube/而不是http链接,我想让适当的应用程序来处理它)@IanJamieson-nope,这将在同一个应用程序中打开url。我不想让我的应用程序在另一个窗口中处理它,我想让我的窗口保持打开,而另一个url由浏览器打开(更重要的是,如果浏览器不是应用程序,则由相应的应用程序执行,例如,当url是
应用程序时://
应用程序)