1212
1313#define kDevice_Is_iPhoneX ([UIScreen instancesRespondToSelector: @selector (currentMode )] ? CGSizeEqualToSize(CGSizeMake(1125 , 2436 ), [[UIScreen mainScreen ] currentMode ].size) : NO )
1414
15+ @interface RNNeteaseIm (){
16+ NSString *strUserAgent;
17+ }
18+
19+ @end
1520
1621@implementation RNNeteaseIm
1722
@@ -784,9 +789,35 @@ -(void)setSendState{
784789// 获取网络状态权限
785790RCT_EXPORT_METHOD (getNetWorkStatus:(RCTPromiseResolveBlock)resolve
786791 reject:(RCTPromiseRejectBlock)reject){
787- int type = 0 ;// 0:无网络, 1:2G, 2:3G, 3:4G, 4:LTE准4G,5:wifi
792+ // int type = 0;//0:无网络, 1:2G, 2:3G, 3:4G, 4:LTE准4G,5:wifi
788793 if (kDevice_Is_iPhoneX ){// iPhone X 目前未找到获取状态栏网络状态,先设置为1
789- type = 1 ;
794+ resolve (@(1 ));
795+ }else {
796+ NSString *strNetWork = [self getNetStatus ];
797+ if ([strNetWork isEqualToString: @" NOTFOUND" ]) {
798+ resolve (@(0 ));
799+ }else {
800+ resolve (@(1 ));
801+ }
802+ }
803+ }
804+ // 设置webview UA
805+ RCT_EXPORT_METHOD (setupWebViewUserAgent){
806+ if (!strUserAgent.length ) {
807+ NSString *version = [[[NSBundle mainBundle ] infoDictionary ] objectForKey: @" CFBundleShortVersionString" ];
808+ NSString *userAgent = [[[UIWebView alloc ] init ] stringByEvaluatingJavaScriptFromString: @" navigator.userAgent" ];
809+ strUserAgent = [userAgent stringByAppendingFormat: @" Feima/%@ NetType/" , version];
810+ }
811+ NSString *strNetWork = [self getNetStatus ];
812+ [[NSUserDefaults standardUserDefaults ] registerDefaults: @{@" UserAgent" :[NSString stringWithFormat: @" %@%@ " ,strUserAgent,strNetWork]}];
813+ }
814+
815+ // 获取网络状态
816+ - (NSString *)getNetStatus {
817+ NSString *strNetWork = @" " ;
818+ int type = 0 ;// 0:无网络, 1:2G, 2:3G, 3:4G, 4:LTE准4G,5:wifi,6:iphone x
819+ if (kDevice_Is_iPhoneX ){// iPhone X 目前未找到获取状态栏网络状态,先设置为1
820+ type = 6 ;
790821 }else {
791822 UIApplication *app = [UIApplication sharedApplication ];
792823 NSArray *children = [[[app valueForKeyPath: @" statusBar" ] valueForKeyPath: @" foregroundView" ] subviews ];
@@ -796,13 +827,33 @@ -(void)setSendState{
796827 }
797828 }
798829 }
799- if (type) {
800- resolve (@(1 ));
801- }else {
802- resolve (@(0 ));
830+ switch (type) {
831+ case 0 :
832+ strNetWork = @" NOTFOUND" ;
833+ break ;
834+ case 1 :
835+ strNetWork = @" 2G" ;
836+ break ;
837+ case 2 :
838+ strNetWork = @" 3G" ;
839+ break ;
840+ case 3 :
841+ strNetWork = @" 4G" ;
842+ break ;
843+ case 4 :
844+ strNetWork = @" LTE" ;
845+ break ;
846+ case 5 :
847+ strNetWork = @" WIFI" ;
848+ break ;
849+ case 6 :
850+ strNetWork = @" NOTFOUND" ;
851+ break ;
852+ default :
853+ strNetWork = @" NOTFOUND" ;
854+ break ;
803855 }
804-
856+ return strNetWork;
805857}
806858
807-
808859@end
0 commit comments