Браузер Safari не обновляется, когда убивает браузер, дважды нажав кнопку «Домой» и проведя пальцем по iOS - PullRequest
0 голосов
/ 30 октября 2019
These two methods to fetch location are common:
export const getLocation = (options) => {
    return new Promise((resolve, reject) => {
        navigator.geolocation.getCurrentPosition(resolve, reject, options);
    });
}

export const getLocationData = async (): Promise<LocationData> => {
    let locationData;
    if (navigator.geolocation && navigator.geolocation.getCurrentPosition) {
        try {
            console.log("ENTERED");
            locationData = await getLocation({ enableHighAccuracy: true });
            console.log("success locationdata", locationData);
        } catch (e) {
            locationData = null;
            console.log("catch locationdata", e);
        } 
    }

    const postLocationData= locationData ? {
        timestamp: locationData.timestamp,
        accuracy: locationData.coords ? locationData.coords.accuracy : 0,
        latitude: locationData.coords ? locationData.coords.latitude : 0,
        longitude: locationData.coords ? locationData.coords.longitude : 0
    } : null;
    return postLocationData;
}


This method is a different component
import { getLocationData } from '../../CommonMethods';

  async componentDidMount() {        
        let locationData = await getLocationData();
        this.props.requestGameList(null, null, locationData);//  requestGameList();
        this.props.requestContentCard(locationData);// request content cards        
    }

У меня есть некоторые игры, основанные на GeoLocation, и некоторые, не основанные на GeoLocation, которые должны быть загружены, и это работает, когда служба определения местоположения включена, но когда служба определения местоположения выключена, Уничтожение браузера (Safari) с помощьюдвойное нажатие кнопки «Домой» и «Проведение по браузеру» не приводит к загрузке игр в браузере. Выполняя console.log, я вижу поток до console.log («ENTERED»); после этого я предполагаю, что он либо должен быть успешным, либо отклонен, однако в моем случае (т. Е. Когда установлена ​​служба определения местоположения)в положение OFF) должен отклонить и перейти к разделу catch и вернуть null. Я вижу console.log ("ENTERED"), но после этого ничего не происходит. Нить ловить не собираюсь. Но тот же код работает с тем же сценарием в Chrome в iOS. В чем может быть причина этого и почему браузер Safari ведет себя по-другому?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...