1
在以原生答案編寫的天氣應用程序上工作時,我在Android上遇到了「網絡請求失敗」錯誤,而應用程序在iOS上正常工作。網絡請求失敗Android
這裏是取功能 -
componentDidMount: function() {
navigator.geolocation.getCurrentPosition(
location => {
// this variable will contain the full url with the new lat and lon
var formattedURL = REQUEST_URL + "lat=" + location.coords.latitude + "&lon=" + location.coords.longitude+"&APPID=e5335c30e733fc682907a126dab045fa";
// this will output the final URL to the Xcode output window
console.log(location.coords.latitude);
console.log(location.coords.longitude);
console.log(formattedURL);
// get the data from the API
this.fetchData(formattedURL);
},
error => {
console.log(error);
});
},
// fetchdata takes the formattedURL, gets the json data and
// sets the apps backgroundColor based on the temperature of
// the location
fetchData: function(url) {
fetch(url)
.then((response) => response.json())
.then((responseData) => {
// set the background colour of the app based on temperature
var bg;
var temp = parseInt(responseData.main.temp);
if(temp < 14) {
bg = BG_COLD;
} else if(temp >= 14 && temp < 25) {
bg = BG_WARM;
} else if(temp >= 25) {
bg = BG_HOT;
}
// update the state with weatherData and a set backgroundColor
this.setState({
weatherData: responseData,
backgroundColor: bg
});
})
.done();
},
我也參考了其他的問題在這裏計算器,但他們都圍繞着變化的localhost像127.0.0.1你的本地IP地址。在我的情況下,我沒有使用localhost。
你在模擬器或物理設備 –
測試它@RaviRaj我在運行的牛軋糖在Nexus 6P模擬器測試它。 –
檢查您的模擬器附近的模擬器選項面板,在那裏你會有更多的選擇,然後去蜂窩和檢查數據狀態和網絡類型。嘗試將網絡類型更改爲「完整」,將數據狀態更改爲「主頁」。檢查它的工作。 –