TianYA1991
TianYA1991
  • 发布:2016-03-04 08:58
  • 更新:2019-08-31 17:46
  • 阅读:5669

如何通过Native.js 的ios接口实现在IOS里面获取wifi模块的MAC地址??

分类:Native.js
iOS

ios获取ip的代码,用native.js怎么实现的,找了很多代码 ,都不会使用,麻烦有木有代码啊参考一下,论坛里只给出了android获取ip的方式,能不能补充一下,plus.ios.name=="IOS"是如何实现获取IP地址的??、在线等.....

2016-03-04 08:58 负责人:无 分享
已邀请:
DCloud_IOS_XTY

DCloud_IOS_XTY

需要写插件实现目前NJS暂不支持改功能

#import <ifaddrs.h>  
#import <arpa/inet.h>  
#import "PGMethod.h"  
#import "PGPlugin.h"  
//1.插件实现  
@interface  IF: PGPlugin  
- (void)getAddresses:(PGMethod*)method;  
@end  
  
@implementation IF  
  
- (void)getAddresses:(PGMethod*)method {  
    NSString *callbackID = [method getArgumentAtIndex:0];  
    struct ifaddrs *interfaces = NULL;  
    struct ifaddrs *enumAddr = NULL;  
    NSMutableDictionary *ret = [NSMutableDictionary dictionary];  
    if ( 0 == getifaddrs(&interfaces)) {  
        enumAddr = interfaces;  
        while(enumAddr != NULL) {  
            if(enumAddr->ifa_addr->sa_family == AF_INET) {  
                NSString *address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)enumAddr->ifa_addr)->sin_addr)];  
                NSString *ifName = [NSString stringWithUTF8String:enumAddr->ifa_name];  
                //NSLog(@"sa_family--%d---Name:[%@]---Addr:[%@]", temp_addr->ifa_addr->sa_family, ifName, address);  
                [ret setObject:address forKey:ifName];  
            }  
            enumAddr = enumAddr->ifa_next;  
        }  
        freeifaddrs(interfaces);  
    }  
    [self toSucessCallback:callbackID withJSON:ret];  
}  
  
@end  
  
//2.注册插件  
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
{  
    BOOL ret = [PDRCore initEngineWihtOptions:launchOptions  
                                  withRunMode:PDRCoreRunModeNormal];  
      
    [[PDRCore Instance] regPluginWithName:@"IF" impClassName:@"IF" type:PDRExendPluginTypeFrame javaScript:@";(function(plus){\  
     var B = window.plus.bridge,\  
           _PLUSNAME = 'IF';\  
     plus.IF = {\  
       getAddresses:function(SuccessCallback)\  
         {\  
           var callbackid = B.callbackId(SuccessCallback);\  
           B.exec(_PLUSNAME,'getAddresses',[callbackid]);\  
         }\  
       };\  
     })(window.plus);"];  
//3.manifest.json permissions节点下添加  
"permissions": {  
        "IF": {  
            "description": ""  
        },  
//4. Example  
plus.IF.getAddresses(   
    function( addrs ) {  
        console.log(JSON.stringify(addrs))  
    }  
);  

  • 8***@qq.com

    这个只能获取到ip地址,我想获取wifi名称,以及附近的wifi列表怎么实现呢。


    2017-05-11 20:13

  • 随风飘扬

    这插件加在什么地方使用?


    2018-09-04 16:53

3***@qq.com

3***@qq.com

同问

Ronson

Ronson

请问楼主找到方法没?求分享一下。

asmallbird

asmallbird

同问?

战无不胜

战无不胜

ios怎么获取wifi列表信息呢?指导下啊!

  • 回梦無痕

    ios的,好像要先申请 Network Extension 权限


    2017-10-20 14:44

  • 战无不胜

    回复 回梦無痕:申请流程怎么样的?代码怎么写呢?


    2017-10-20 14:50

  • 回梦無痕

    @352633992@qq.com:申请方法百度有,功能只能靠写插件解决,要离线打包


    2017-10-20 14:55

  • 回梦無痕

    你是要获取当前wifi信息,还是整个wifi列表


    2017-10-20 14:57

  • 战无不胜

    回复 回梦無痕:最好能获取整个wifi列表,如果不能实现,获取当前连接的wifi信息也行


    2017-10-20 17:14

战无不胜

战无不胜

怎么申请?具体流程怎样的?代码怎么写?

W***@163.com

W***@163.com

请问写的插件该如何使用

芜湖

芜湖 - 95后的页面仔

请问楼主找到方法没?求分享一下。

该问题目前已经被锁定, 无法添加新回复