反应本机地理位置不询问Android模拟器上的用户权限

时间:2019-01-14 02:12:26

标签: reactjs react-native geolocation

您好,我使用以下代码成功获取了用户位置,但是在android模拟器中,它并没有询问用户是否要共享其位置(即使在我重新安装应用程序之后)。

代码可以正常运行。...但是我真的希望标准警报出现,显示“您确定要与该应用共享位置”

任何指导将不胜感激

navigator.geolocation.getCurrentPosition(
        (pos) => {
          console.log(pos.coords.longitude, pos.coords.latitude);

1 个答案:

答案 0 :(得分:0)

我认为您重新安装应用后,位置权限不会再显示,因为手机仍会记住为应用授予的权限。您可以通过应用(https://www.howtogeek.com/230683/how-to-manage-app-permissions-on-android-6.0/)检查应用是否具有“ Android设置”中授予的权限。

也许这段代码可以帮助您

var NodeGeocoder = require('node-geocoder');
var options = {
  provider: process.env.GEOCODING_PROVIDER,
  httpAdapter: 'https',
  apiKey: process.env.GEOCODING_KEY,
  formatter: null
};
var geocoder = NodeGeocoder(options);


collection.getExistingId( req.params.id, ( err, record ) => {

    const existingAddress = addresstoString(record.address);
    const newAddress = addresstoString(newRecord.address);

    if ( !compareAddresses(existingAddress,newAddress) ) {          

        geocoder.geocode(newAddress, function(err, geocode) {

            let coords = []; // mongoDB wants [Long,Lat]
                coords[0] = geocode[0].longitude;
                coords[1] = geocode[0].latitude;

            // set existingAddress.COORDINATES = coords
            // save the record

        });
    }

});