Skip to content

Commit 4f37a17

Browse files
guangyaoguangyao
authored andcommitted
增加设置webview ua的方法
1 parent bf6ba6e commit 4f37a17

File tree

2 files changed

+68
-8
lines changed

2 files changed

+68
-8
lines changed

Utils.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,15 @@ class Utils{
6262
sortPinYin(o,key){
6363
return PinYin.sortPinYin(o,key);
6464
}
65+
/**
66+
* 设置webview UA
67+
* @returns {*}
68+
*/
69+
setupWebViewUserAgent(){
70+
if(Platform.OS === 'ios'){
71+
RNNeteaseIm.setupWebViewUserAgent();
72+
}
73+
}
6574
}
6675
module.exports = new Utils();
6776

ios/RNNeteaseIm/RNNeteaseIm/RNNeteaseIm.m

Lines changed: 59 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@
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
//获取网络状态权限
785790
RCT_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

Comments
 (0)