NEHotspotHelper的使用和申请

最近需要在APP中加入WiFi相关的功能,之前没有做过,比较迷茫!这个框架是iOS9 以后才出来的,国内有APP用的,但是开发的资料很少!自己在网上找了很多零散的资料,然后写了一个demo,下面把自己的写的过程分享给大家,希望可以对你有所帮助,也请大神支出不足之处:

这个框架的使用大致分为这几个步骤 
向苹果申请使用权限 
配置证书文件 
配置工程 
代码实现


向苹果申请框架的使用权限

  • 上这个网站去填写一个申请表。
  • 申请的周期比较长最少是两周,甚至更长时间。我在第一次申请的时候就用了两个月的时间。
  • 在填写申请表的时候尽量使用英文去填写,那样申请陈宫的概率会比较大的
  • 这个是申请的网址NetworkExtension框架使用权限申请
  • 如果申请成功了会收到一个内容这样的邮件
  • 申请成功的邮件回复

证书文件配置

等待收到申请成功后。就可以着手下面的工作了,开始配置证书和配置文件,我建议在获得这个框架的使用权限以后从新申请一个证书来调试,我的就是把原来旧的证书删除以后才调试成功的!

  • 下面就是配置证书的步骤 
    增加新的证书
  • 证书添加完成后配置identifiers文件 
    配置identifiers
  • 在配置identifiers文件的时候注意要勾选上我图片上箭头标注的两个选项 
  • 接下来配置iCloud文件 
    这里写图片描述 
    这里写图片描述
  • Identifiers的时候要和你的工程的bundle ID 是一样的 
    这里写图片描述
  • 这里配置完成后,再点开刚才生成的APP IDs,这个时候,iCloud那一行的两个点会显示黄色的 ,然后找到到edit,点击进去 
    这里写图片描述
  • 然后配置你刚才生成的iCloud文件 
    这里写图片描述 
    这里写图片描述
  • 这样ID文件就配置完成了

  • 接下来就是配置profile文件了 
    这里写图片描述 
    这里写图片描述

  • 这里选择你刚才配置好的APP IDs 
    这里写图片描述
  • 选择刚才刚刚生成的证书 
    这里写图片描述
  • 选择调试设备 
    这里写图片描述
  • 如果你申请框架使用权限成功了,那么最后一步就会有这个选项,选择下面那个! 
    这里写图片描述 
    OK!到这个地方,证书配置完成了!接下来就是配置自己的工程了

工程配置

  • 首先打开工程,啥东西都不要动!按照下面的图片里面的内容进行工程配置 
    这里写图片描述

这里写图片描述 
- 这个地方很重要,不能整错了 
这里写图片描述

  • 配置info.plist文件 
    这里写图片描述
    OK!这就是工程里面需要配置的地方

代码实现

  • 直接把下面的代码复制到工程里面不出问题就可以看到控制台输出WiFi列表信息了,(工程运行后要打开系统的WiFi设置界面才有WiFi信息输出):
  • //
    //  ViewController.m
    //  Wifi
    //
    //  Created by Jone Yin on 16/9/22.
    //  Copyright © 2016年 Jone Yin. All rights reserved.
    //
    
    #import "ViewController.h"
    #import <NetworkExtension/NetworkExtension.h>
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        NSMutableDictionary* options = [[NSMutableDictionary alloc] init];
        [options setObject:@"" forKey:kNEHotspotHelperOptionDisplayName];
        
        dispatch_queue_t queue = dispatch_queue_create("com.myapp.ex", NULL);
        BOOL returnType = [NEHotspotHelper registerWithOptions:options queue:queue handler: ^(NEHotspotHelperCommand * cmd) {
            NEHotspotNetwork* network;
            
            NSLog(@"COMMAND TYPE:   %ld", (long)cmd.commandType);
            [cmd createResponse:kNEHotspotHelperResultAuthenticationRequired];
            if (cmd.commandType == kNEHotspotHelperCommandTypeEvaluate || cmd.commandType ==kNEHotspotHelperCommandTypeFilterScanList) {
                NSLog(@"WIFILIST:   %@", cmd.networkList);
                
                for (network  in cmd.networkList) {
                    
                    NSLog(@"COMMAND TYPE After:   %ld", (long)cmd.commandType);
                    
                    if ([network.SSID isEqualToString:@"ssid"]|| [network.SSID isEqualToString:@"roam2free_dev_5G"]) {
                        
                        double signalStrength = network.signalStrength;
                        NSLog(@"Signal Strength: %f", signalStrength);
                        [network setConfidence:kNEHotspotHelperConfidenceHigh];
                        [network setPassword:@"roam2free_deVelop"];
                        
                        NEHotspotHelperResponse *response = [cmd createResponse:kNEHotspotHelperResultSuccess];
                        NSLog(@"Response CMD %@", response);
                        
                        [response setNetworkList:@[network]];
                        [response setNetwork:network];
                        [response deliver];
                    }
                }
            }
            
        }];
        
        NSLog(@"result :%d", returnType);
        
        NSArray *array = [NEHotspotHelper supportedNetworkInterfaces];
        
        NSLog(@"wifiArray:%@", array);
        
        NEHotspotNetwork *connectedNetwork = [array lastObject];
        
        NSLog(@"supported Network Interface: %@", connectedNetwork);
    
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    @end
    


联系方式

  • 有什么指正可以加入这个群 585640621,大家一起讨论!
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值