У меня есть код для моего приложения (в котором я использую Apache Cordova) в геолокации PubNube HTML5 JavaScript, который определяет местоположение пользователя в режиме реального времени, однако этот код отлично работает в браузере, но когда я преобразую файл Apache Cordova в APK с помощью Android Studio, он не работает в APK, поэтому я думаю, что его легко решить, поскольку он работает на одной платформе, а другая - нет.
Мой Android Манифест
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.apache.cordova" android:versionName="1.0" android:versionCode="1">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />
<uses-permission android:name="android.permission.ACCESS_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
Мой Javascript Код
const clientUUID = PubNub.generateUUID();
var pubnub = new PubNub({
publishKey: *****,
subscribeKey: ****,
secretkey: ****
});
if ('geolocation' in navigator) {
const watcher = navigator.geolocation.watchPosition(function(position){
// sets default position to your position
var latitude = position.coords["latitude"];
var longitude = position.coords["longitude"];
var altitude = 0;
console.log(position);
console.log({"lat":latitude, "lng":longitude, "alt":0});
var newMessage = {
lat: latitude,
lng: longitude
}
pubnub.publish(
{
channel: "******",
message: newMessage
},
function(status, response) {
console.log(status, response);
console.log("Submit");
console.log(newMessage);
}
);
}, function(error){
console.log(error)
}, {enableHighAccuracy: true, maximumAge: 30000, timeout: 30000})
}