- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我目前正在尝试在我的一个 native react 应用程序中实现网络服务调用并使用 react-native-web-service-handler调用 Get
和 Post
Web API。
请看下面我的函数。
getRandomUserList() {
WebServiceHandler.get(APIConstants.baseURL, null, null)
.then((val)=>{
console.log('callapi: ' + JSON.stringify(val))
this.setState({data:val})
})
.catch((error) => console.log('callapi:'+ JSON.stringify(error)));
}
APIConstants
如下所示,
const APIConstants = {
baseURL:"https://randomuser.me/api/?results=50"
}
我是这样调用这个函数的,
componentDidMount() {
this.getRandomUserList();
}
请找到WebServiceHandler.get
函数如下,
static get(url: String, headerParam: Object, parameter: Object){
console.log('WebServiceHandler:Initiating GET request');
return new Promise(function(success, failed){
NetInfo.isConnected.fetch().done((isConnected) => {
console.log('WebServiceHandler: Network Connectivity status: ' + isConnected);
if (!isConnected) {
failed({name:'503',message:"No Internet connection"});
}else {
let URL = url + WebServiceHandler.parameter(parameter);
console.log('URL:-' + URL);
fetch(URL,{
method: 'get',
'headers': WebServiceHandler.header(headerParam)
})
.then(function(response) {
console.log(response.status);
if (!response.ok) {
throw {name:response.status,message:"http request failed", value:response.json()};
}
return response.json();
})
.then(function(jsonResponse) {
console.log('************************ HTTP GET Succes ************************ ');
success(jsonResponse);
})
.catch(function(err) {
console.log('************************ HTTP GET Failed **************************');
failed(err)
});
}
});
});
}
它总是返回以下输出,
WebServiceHandler: Network Connectivity status: false
App.js:50 callapi:{"name":"503","message":"No Internet connection"}
我尝试了很多 Wi-Fi 和宽带连接,但都没有成功。
经过一番研究,我找到了this article on Github并实现了这个功能。
static isNetworkConnected() {
if (Platform.OS === 'ios') {
return new Promise(resolve => {
const handleFirstConnectivityChangeIOS = isConnected => {
NetInfo.isConnected.removeEventListener('connectionChange', handleFirstConnectivityChangeIOS);
resolve(isConnected);
};
NetInfo.isConnected.addEventListener('connectionChange', handleFirstConnectivityChangeIOS);
});
}
return NetInfo.isConnected.getConnectionInfo();
}
但它仍然给我同样的错误信息。能帮我解决这个问题吗?
仅供引用。你可以找到相同的 question在这里没有答案。
谢谢。
最佳答案
终于找到答案了,解决方法是这样的,
static isNetworkConnected() {
return NetInfo.getConnectionInfo().then(reachability => {
if (reachability === 'unknown') {
return new Promise(resolve => {
const handleFirstConnectivityChangeIOS = isConnected => {
NetInfo.isConnected.removeEventListener('connectionChange', handleFirstConnectivityChangeIOS);
resolve(isConnected);
};
NetInfo.isConnected.addEventListener('connectionChange', handleFirstConnectivityChangeIOS);
});
}
reachability = reachability.toLowerCase();
return (reachability !== 'none' && reachability !== 'unknown');
});
}
我们应该实现 getConnectionInfo()
,因为 fetch()
是不推荐使用的方法。
或者
使用 NetInfo.getConnectionInfo()
更新 NetInfo.isConnected.fetch()
。这也可以。
谢谢。
关于ios - React-Native NetInfo 始终返回无互联网连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49572815/
netInfo React Native总是在ios模拟器中返回false NetInfo.isConnected.fetch().then(isConnected => { if (isCo
我在我的应用程序中使用 NetInfo,以检查它是否已连接到互联网。 NetInfo.isConnected.fetch().then( (isConnected) => { console.
我目前正在尝试在我的一个 native react 应用程序中实现网络服务调用并使用 react-native-web-service-handler调用 Get 和 Post Web API。 请看
当我从真实设备上关闭互联网连接时,它没有检测到我处于离线状态,但是当再次上线时,它会将值返回为 true。 import React from 'react'; import { SafeArea
我正在尝试在客户端 React Native 应用程序中实现离线(尚未添加 - 但也是低连接)网络错误弹出消息。 这是我的完整 View 代码: import React, {useState, us
我正在尝试在客户端 React Native 应用程序中实现离线(尚未添加 - 但也是低连接)网络错误弹出消息。 这是我的完整 View 代码: import React, {useState, us
我正在处理两个 PoC。 1)RNRestAPI。 2)RN导航。 在 RNRestAPI 中,index.android.js 和 index.ios.js 都是这样的; import React,
我在我的 react-native v0.49 应用程序上实现了检查互联网。 我正在使用 react-native 的 NetInfo。 当发生任何更改时,我添加 eventListener 它将调用
环境 Expo CLI 3.11.7 环境信息: 系统: 操作系统:Linux 5.0 Ubuntu 18.04.3 LTS(仿生海狸) shell :4.4.20 -/bin/bash 二进制文件:
我正在使用 react native 构建一个应用程序,但它不是仅在 ios 和 Android 中使用 axios 获取数据,它工作正常 当我使用 Netinfo 检查网络状态时,它返回未知 co
我遵循了“HandlerBar Labs”中有关“使用 Redux Persist 保存数据”的教程。在练习应用程序中一切正常,但当我尝试在实际应用程序中使用它时,我收到了该错误。以下是完整的错误消息
我正在使用 react-native-netinfo在我的应用程序中。在 iOS 中,它工作正常。但在 android 中总是返回 true。它没有互联网连接(WiFi 或移动数据)。它仍然返回 tr
我正在使用 Netinfo 检查 android-react-native 上的连接,我收到错误“要在 Android 上使用 NetInfo,请将以下内容添加到您的 AndroidManifest.
我有一个组件来跟踪设备的互联网连接,并在没有连接时显示一个红色的小横幅。一般来说,它工作正常:当您在应用程序中切换互联网时,横幅会出现并消失。 但是,如果您在没有互联网的情况下启动应用,它不会显示横幅
我已经从 更新了 React Native 版本0.57 到 0.59.1 .成功更新后,它会在 react native 信息中引发错误,因此我安装了@react-native-community/
我想在所有组件中测试用户是否已连接到互联网。 我可以在每个组件中使用 NetInfo,但由于我使用的是 redux,我认为使用中间件(?)可以更轻松地完成。 我用过 import { createSt
我们正在以下列方式使用 react-native NetInfo。 export default class NetworkStatus extends React.PureComponent {
当使用 react-native-web 时,NetInfo 适用于 Android 和 iOS,但不适用于 Web。 为了确认为 Web 运行的代码与 Android 相同,我在 component
我是一名优秀的程序员,十分优秀!