安装不工作在Android - PhoneGap Build
问题描述:
我正在做一个简单的PhoneGap应用程序,它获取用户的位置。安装不工作在Android - PhoneGap Build
用于我的生成的代码是从地图documentation
下面的例子是我的XML代码:
<content src="index.html" />
<preference name="DisallowOverscroll" value="true" />
<preference name="android-minSdkVersion" value="14" />
<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="StatusBarBackgroundColor" value="#ee6e73" />
<preference name="StatusBarStyle" value="blacktranslucent" />
<preference name="orientation" value="portrait" />
<plugin name="cordova-plugin-statusbar" source="npm" spec="~2.1.3" />
<plugin name="cordova-plugin-geolocation" source="npm" />
<plugin name="org.apache.cordova.globalization" source="npm" />
<plugin name="org.apache.cordova.geolocation" source="npm" />
<plugin name="cordova-plugin-console" source="npm" spec="~1.0.3" />
<plugin name="cordova-plugin-dialogs" source="npm" spec="~1.2.1" />
<plugin name="cordova-plugin-whitelist" source="npm" spec="~1.2.1" />
<feature name="Geolocation">
<param name="android-package" value="org.apache.cordova.geolocation.GeoBroker" />
</feature>
<allow-navigation href="*" />
<access origin="*" launch-external="yes" />
<access origin="*://*.googleapis.com/*" subdomains="true" />
<access origin="*://*.gstatic.com/*" subdomains="true" />
<access origin="*://*.google.com/*" subdomains="true" />
<access origin="*://*.googleusercontent.com/*" subdomains="true" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
<allow-intent href="market:*" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
而应用程序完美的作品上的浏览器,Android版本不加载位置。
进一步注意到maps.gstatic.com和mts.googleapis.com不从应用程序加载,都装载在浏览器中,其随后导致提供位置预先
感谢。
UPDATE 1:
,以免混淆,我已经使用由PhoneGap的桌面应用程序生成的默认config.xml中,仍然不能获得的位置。
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.phonegap.helloworld" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0">
<name>new</name>
<description>
Hello World sample application that responds to the deviceready event.
</description>
<author email="[email protected]" href="http://phonegap.com">
PhoneGap Team
</author>
<content src="index.html" />
<preference name="DisallowOverscroll" value="true" />
<preference name="android-minSdkVersion" value="14" />
<plugin name="cordova-plugin-battery-status" source="npm" spec="~1.1.1" />
<plugin name="cordova-plugin-camera" source="npm" spec="~2.1.1" />
<plugin name="cordova-plugin-media-capture" source="npm" spec="~1.2.0" />
<plugin name="cordova-plugin-console" source="npm" spec="~1.0.2" />
<plugin name="cordova-plugin-contacts" source="npm" spec="~2.0.1" />
<plugin name="cordova-plugin-device" source="npm" spec="~1.1.1" />
<plugin name="cordova-plugin-device-motion" source="npm" spec="~1.2.0" />
<plugin name="cordova-plugin-device-orientation" source="npm" spec="~1.0.2" />
<plugin name="cordova-plugin-dialogs" source="npm" spec="~1.2.0" />
<plugin name="cordova-plugin-file" source="npm" spec="~4.1.1" />
<plugin name="cordova-plugin-file-transfer" source="npm" spec="~1.5.0" />
<plugin name="cordova-plugin-geolocation" source="npm" spec="~2.1.0" />
<plugin name="cordova-plugin-globalization" source="npm" spec="~1.0.3" />
<plugin name="cordova-plugin-inappbrowser" source="npm" spec="~1.3.0" />
<plugin name="cordova-plugin-media" source="npm" spec="~2.2.0" />
<plugin name="cordova-plugin-network-information" source="npm" spec="~1.2.0" />
<plugin name="cordova-plugin-splashscreen" source="npm" spec="~3.2.1" />
<plugin name="cordova-plugin-statusbar" source="npm" spec="~2.1.2" />
<plugin name="cordova-plugin-vibration" source="npm" spec="~2.1.0" />
<plugin name="cordova-plugin-whitelist" source="npm" spec="~1.2.1" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
<allow-intent href="market:*" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
答
试试这个插件从Android设备获得纬度长,然后调用地图上的成功插件调用
到接收到成功的功能添加到地图Lat Long网
document.addEventListener("deviceready", appReady, false);
function appReady(){
navigator.geolocation.getCurrentPosition(onSuccess, onError);
}
// onSuccess Callback
// This method accepts a Position object, which contains the
// current GPS coordinates
var onSuccess = function(position) {
alert('Latitude: ' + position.coords.latitude + '\n' +
'Longitude: ' + position.coords.longitude + '\n' +
'Altitude: ' + position.coords.altitude + '\n' +
'Accuracy: ' + position.coords.accuracy + '\n' +
'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '\n' +
'Heading: ' + position.coords.heading + '\n' +
'Speed: ' + position.coords.speed + '\n' +
'Timestamp: ' + position.timestamp + '\n');
};
// onError Callback receives a PositionError object
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
试试这个和乐我知道这是否适合你。
答
我有我的生成更新到
<preference name="phonegap-version" value="cli-6.3.0" />
你必须从你的代码删除
<plugin name="cordova-plugin-geolocation" source="npm" />
<plugin name="org.apache.cordova.geolocation" source="npm" />
和
<feature name="Geolocation">
<param name="android-package" value="org.apache.cordova.geolocation.GeoBroker" />
</feature>
,并添加以下代码
为Android
<plugin name="cordova-plugin-geolocation" spec="0.3.12" source="npm"/>
<plugin name="cordova-plugin-network-information" spec="0.2.15" source="npm" />
为IOS
<plugin name="cordova-plugin-geolocation" spec="https://github.com/apache/cordova-plugin-geolocation.git"/>
<plugin name="cordova-plugin-network-information" spec="https://github.com/apache/cordova-plugin-network-information.git" />
并使用该加载位置
navigator.geolocation.getCurrentPosition(zoomToLocation, locationError, { maximumAge: 5000, timeout: 7500 });
function zoomToLocation(position) {
var geolocate = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
谢谢,但插件已经包含在我的代码。 – meetrk85
您是否已将'cordova.js'添加到您的'.html'文件中,或者如果您正在通过'PhoneGap Build Online'构建应用程序,然后添加'phonegap.js'也尝试在'deviceready event listner'上调用此函数 –
已尝试这也没有运气。我没有物理装备,它可能是模拟器上的问题吗? – meetrk85