Latest 1.1.2
Homepage https://github.com/Lede-Inc/LDNetDiagnoService_IOS
License MIT
Platforms ios 7.0, requires ARC
Authors

LDNetDiagnoService_IOS

===============

利用ping和traceroute的原理,对指定域名(通常为后台API的提供域名)进行网络诊断,并收集诊断日志。功能通过Service的方式提供给各个产品项目,由各个项目组决定如何使用。

LDNetDiagnoService最终效果


  • 调用网络诊断服务,监控日志输出;
  • 诊断结束之后,返回日志文本;
  • 调用者可以选择保存、邮件上传、接口上传等方式上传监控日志;

如下图所示:

LDNetDiagnoService

如何集成LDNetDiagnoService_IOS


在项目工程的Podfile文件中加载LDNetDiagnoService库:

pod 'LDNetDiagnoService' :git =>  'https://github.com/Lede-Inc/LDNetDiagnoService_IOS.git'

如何使用LDNetDiagnoService_IOS


通过pod或者代码拷贝service代码到工程之后,即可通过如下方式调用网络诊断服务:

  1. 初始化service,并为service设置监控日志输出的delegate;

tip:初始化参数只需要初始化appcode,userID, dormain(必须), 其他参数如果不设置,service会自动补上这些日志参数;

// Do any additional setup after loading the view, typically from a nib.
_netDiagnoService = [[LDNetDiagnoService alloc] initWithAppCode:@"test"
                                                        appName:@"网络诊断应用"
                                                     appVersion:@"1.0.0"
                                                         userID:@"[email protected]"
                                                       deviceID:nil
                                                        dormain:_txtfield_dormain.text
                                                    carrierName:nil
                                                 ISOCountryCode:nil
                                              MobileCountryCode:nil
                                                  MobileNetCode:nil];
_netDiagnoService.delegate = self;
  1. service中提供开启或停止网络诊断的功能;
- (void)startNetDiagnosis
{
    [_txtfield_dormain resignFirstResponder];
    _netDiagnoService.dormain = _txtfield_dormain.text;
    if (!_isRunning) {
        ...
        [_netDiagnoService startNetDiagnosis];
    } else {
        ...
        [_netDiagnoService stopNetDialogsis];
    }
}
  1. 重载delegate方法,监控网络诊断日志;

    • 监控诊断开始

      #pragma mark NetDiagnosisDelegate
      -(void)netDiagnosisDidStarted {
          NSLog(@"开始诊断~~~");
      }
    • 监控网络诊断过程中的日志输出

      -(void)netDiagnosisStepInfo:(NSString *)stepInfo {
          NSLog(@"%@", stepInfo);
          _logInfo = [_logInfo stringByAppendingString:stepInfo];
          dispatch_async(dispatch_get_main_queue(), ^{
              _txtView_log.text = _logInfo;
          });
      }
    • 诊断结束,输出全部日志记录

      -(void)netDiagnosisDidEnd:(NSString *)allLogInfo;{
          //可以保存到文件,也可以通过邮件发送回来
          dispatch_async(dispatch_get_main_queue(), ^{
              [_indicatorView stopAnimating];
              [btn setTitle:@"开始诊断" forState:UIControlStateNormal];
              _isRunning = NO;
          });
      }

如何通过textview监控日志输出


  • 如果产品需要通过textview缄口日志输出过程,可以参考demo例子中的ViewController的代码;

  • 在网络诊断结束的时候,将日志文件上传;

技术支持


to be continued ….

庞辉, 电商技术中心,popo:[email protected]

Latest podspec

{
    "name": "LDNetDiagnoService",
    "version": "1.1.2",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "summary": "u5229u7528TCP Connectu548ctracerouteu7684u539fu7406uff0cu5bf9u6307u5b9au57dfu540duff08u901au5e38u4e3au540eu53f0APIu7684u63d0u4f9bu57dfu540duff09u8fdbu884cu7f51u7edcu8bcau65aduff0cu5e76u6536u96c6u8bcau65adu65e5u5fd7u3002",
    "homepage": "https://github.com/Lede-Inc/LDNetDiagnoService_IOS",
    "authors": {
        "huipang": "[email protected]"
    },
    "source": {
        "git": "https://github.com/Lede-Inc/LDNetDiagnoService_IOS.git",
        "tag": "1.1.2"
    },
    "platforms": {
        "ios": "7.0"
    },
    "requires_arc": true,
    "ios": {
        "public_header_files": "LDNetDiagnoService/LDNetDiagnoService.h",
        "source_files": "LDNetDiagnoService/*.{h,m}",
        "frameworks": "CoreTelephony",
        "libraries": "resolv"
    }
}

Pin It on Pinterest

Share This