怎么ios 获取用户ip adr ios客户端

博客分类:
方案一:正则表达式
通过观察规律,得出以下表达式:
;\s?([^;]+?)\s?(Build)?/
Java代码:
Pattern pattern = pile(";\\s?(\\S*?\\s?\\S*?)\\s?(Build)?/");
Matcher matcher = pattern.matcher(userAgent);
String model =
if (matcher.find()) {
model = matcher.group(1).trim();
log.debug("通过userAgent解析出机型:" + model);
以下为部分UserAgent,供测试,可以直接在EditPlus里验证。
Mozilla/5.0 (L U; Android 4.3; zh- R8007 Build/JLS36C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Mozilla/5.0 (L U; Android 4.3; zh- R8007 Build/JLS36C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 V1_AND_SQ_5.0.0_146_YYB_D QQ/5.0.0.2215
Mozilla/5.0 (L U; Android 4.3; zh- SM-N9009 Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.3 Mobile Safari/537.36
Mozilla/5.0 (L Android 4.2.2; zh- SCH-I959 Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Version/1.0 Chrome/18.0. Mobile Safari/535.19
Mozilla/5.0 (L U; Android 4.3; zh-CN; SM-N9009 Build/JSS15J) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.9.2.467 U3/0.8.0 Mobile Safari/533.1
Mozilla/5.0 (L U; Android 4.1.2; zh-CN; Coolpad 5891 Build/JZO54K) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.9.3.478 U3/0.8.0 Mobile Safari/533.1
Mozilla/5.0 (L U; Android 4.1.2; zh- Coolpad 5891 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 V1_AND_SQ_5.0.0_146_YYB2_D QQ/5.0.0.2215
Mozilla/5.0 (iP CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53
Mozilla/5.0 (iP CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Mobile/11D257 QQ/5.0.0.165
Mozilla/5.0 (L Android 4.3; zh- SAMSUNG-GT-I9308_TD/1.0 Android/4.3 Release/11.15.2013 Browser/AppleWebKit534.30 Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Mozilla/5.0 (L U; Android 4.1.1; zh- GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 SogouMSE,SogouMobileBrowser/3.2.3
Mozilla/5.0 (L U; Android 4.2.2; zh- SCH-I959 Build/JDQ39) AppleWebKit/534.24 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.24 T5/2.0 baidubrowser/5.0.3.10 (B P1 4.2.2)
Mozilla/5.0 (L U; Android 4.2.2; zh- SCH-I959 Build/JDQ39) AppleWebKit/534.24 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.24 T5/2.0
Mozilla/5.0 (L Android 4.3; SM-N9009 Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0. Mobile Safari/537.36 OPR/24.0.
Mozilla/5.0 (L U; Android 4.4.4; zh-CN; Nexus 4 Build/KTU84P) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.9.2.467 U3/0.8.0 Mobile Safari/533.1
Mozilla/5.0 (L U; Android 4.0.4; zh- HUAWEI C8825D Build/HuaweiC8825D) AppleWebKit/534.24 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.24 T5/2.0 baidubrowser/5.2.3.0 (B P1 4.0.4)
Mozilla/5.0 (L U; Android 4.0.4; zh- HUAWEI C8825D Build/HuaweiC8825D) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.3 Mobile Safari/537.36
Mozilla/5.0 (L Android 4.0.4; HUAWEI C8825D Build/HuaweiC8825D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0. Mobile Safari/537.36
Mozilla/5.0 (L U; Android 4.0.4; zh- HUAWEI C8825D Build/HuaweiC8825D) AppleWebKit/535.19 (KHTML, like Gecko) Version/4.0 LieBaoFast/2.12.0 Mobile Safari/535.19
Opera/9.80 (A Opera Mini/7.0.9; U; zh) Presto/2.8.119 Version/11.10
Mozilla/5.0 (L U; Android 4.0.4; zh- HW-HUAWEI_C8825D/C1C92B943SP01; 480*800; CTC/2.0) AppleWebKit/534.30 Mobile Safari/534.30
Mozilla/5.0 (L U; Android 4.4.2; zh-CN; SGP521 Build/17.1.2.A.0.314) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.9.2.467 U3/0.8.0 Mobile Safari/533.1
Mozilla/5.0 (L Android 4.4.2; SGP521 Build/17.1.2.A.0.314) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0. Safari/537.36
Mozilla/5.0 (L U; Android 4.0.4; zh-CN; HUAWEI C8825D Build/HuaweiC8825D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.8.5.442 U3/0.8.0 Mobile Safari/533.1
Mozilla/5.0 (L U; Android 4.1.1; zh- GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Mozilla/5.0 (L Android 4.4.2; zh- SAMSUNG-SM-N9009 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/1.5 Chrome/28.0.1500.94 Mobile Safari/537.36
Mozilla/5.0 (L U; Android 4.2.2; zh-CN; HTC HTL22 Build/JDQ39) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.9.2.467 U3/0.8.0 Mobile Safari/533.1
Mozilla/5.0 (L Android 4.3; SM-N9009 Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0. Mobile Safari/537.36
Mozilla/5.0 (L U; Android 4.2.1; zh- AMOI A920W Build/JOP40D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Mozilla/5.0 (L Android 4.3; SM-N9009 Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0. Mobile Safari/537.36
Mozilla/5.0 (L U; Android 4.1.1; zh-CN; GT-N7100 Build/JRO03C) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.9.2.467 U3/0.8.0 Mobile Safari/533.1
Mozilla/5.0 (L U; Android 4.3; zh- R8007 Build/JLS36C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Huawei U8800
Android 2.3.3
Mozilla/5.0 (L U; Android 2.3.5; zh-cn) AppleWebKit/530.17 (KHTML, like Gecko) FlyFlow/2.2 Version/4.0 Mobile Safari/530.17
Huawei U8800
Android 2.3.3
Mozilla/5.0 (L U; Android 2.3.5; zh- U8800 Build/HuaweiU8800) UC AppleWebKit/534.31 (KHTML, like Gecko) Mobile Safari/534.31
Meizu MX M031
Android 4.0.3
Mozilla/5.0 (L Android 4.0.3; M031 Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0. Mobile Safari/535.19
Meizu MX M031
Android 4.0.3
Opera 12.1
Opera/9.80 (Android 4.0.3; L Opera Mobi/ADR-) Presto/2.11.355 Version/12.10
Meizu MX M031
Android 4.0.3
-built-in *
Mozilla/5.0 (L U; Android 4.0.3; zh- M031 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Meizu MX M031
Android 4.0.3
Mozilla/5.0 (L U; Android 4.0.3; zh-cn) AppleWebKit/530.17 (KHTML, like Gecko) FlyFlow/2.2 Version/4.0 Mobile Safari/530.17
Meizu MX M031
Android 4.0.3
Mozilla/5.0 (L U; Android 4.0.3; zh- M031 Build/IML74K) UC AppleWebKit/534.31 (KHTML, like Gecko) Mobile Safari/534.31
Android 4.0.3
MQQBrowser/3.7/Mozilla/5.0 (L U; Android 4.0.3; zh- M9 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Normal Mode
Android 4.0.3
MQQBrowser/3.5/Adr (L U; 4.0.3; zh- M9 Build/Flyme 1.0.1;640*960)
Speed Mode
Android 4.0.3
-built-in *
Mozilla/5.0 (L U; Android 4.0.3; zh- M9 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Android 4.0.3
MQQBrowser/3.5/Mozilla/5.0 (L U; Android 4.0.3; zh- M9 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Normal Mode
Meizu MX M031
Android 4.0.3
Maxthon 2.7
Mozilla/5.0 (L U; Android 4.0.3; zh- M031 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Huawei U8800
Android 2.3.3
Maxthon 2.7
Mozilla/5.0 (L U; Android 2.3.5; zh- U8800 Build/HuaweiU8800) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Huawei U8800
Android 2.3.3
MQQBrowser/3.7/Adr (L U; 2.3.5; zh- U8800 Build/UC00B528G002;480*800)
Speed Mode
Huawei U8800
Android 2.3.3
Dolphin 9.1
Mozilla/5.0 (L U; Android 2.3.5; zh- U8800 Build/HuaweiU8800) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Huawei U8800
Android 2.3.3
MQQBrowser/3.7/Mozilla/5.0 (L U; Android 2.3.5; zh- U8800 Build/HuaweiU8800) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Normal Mode
Huawei U8800
Android 2.3.3
-built-in *
Mozilla/5.0 (L U; Android 2.3.5; zh- U8800 Build/HuaweiU8800) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Samsung P6200(GALAXY Tab)
Android 3.2
-built-in *
Mozilla/5.0 (L U; Android 3.2; zh- GT-P6200 Build/HTJ85B) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13
Huawei U8800
Android 2.3.3
Maxthon 4.0
Mozilla/5.0 (L U; Android 2.3.5; zh- U8800 Build/HuaweiU8800) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Meizu MX M031
Android 4.0.3
Mozilla/5.0 (L U; Android 4.0.3; zh- M031 Build/IML74K) AppleWebKit/530.17 (KHTML, like Gecko) FlyFlow/2.3 Version/4.0 Mobile Safari/530.17 baidubrowser/023_1.41.3.2_diordna_069_046/uzieM_51_3.0.4_130M/C7DAC3FA587DF3AD%7C468/1
Huawei U8800
Android 2.3.3
Mozilla/5.0 (L U; Android 2.3.5; zh- U8800 Build/HuaweiU8800) AppleWebKit/530.17 (KHTML, like Gecko) FlyFlow/2.3 Version/4.0 Mobile Safari/530.17 baidubrowser/042_1.6.3.2_diordna_008_084/IEWAUH_01_5.3.2_a/BE44DF7FABAB1E93C4BAD478%7C353/1
Huawei U8800
Android 2.3.3
Dolphin 9.2
Mozilla/5.0 (L U; Android 2.3.5; zh- U8800 Build/HuaweiU8800) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
HTC S720e(One X)
Android 4.0.3
-built-in *
Mozilla/5.0 (L U; Android 4.0.4; zh- HTC S720e Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
HTC S720e(One X)
Android 4.0.3
Mozilla/5.0 (L U; Android 4.0.4; zh- HTC S720e Build/IMM76D) UC AppleWebKit/534.31 (KHTML, like Gecko) Mobile Safari/534.31
Meizu MX M031
Android 4.0.3
Dolphin Min 2.3
Mozilla/5.0 (L U; Android 4.0.3; zh- M031 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Meizu MX M031
Android 4.0.3
MQQBrowser/4.0/Mozilla/5.0 (L U; Android 4.0.3; zh- M031 Build/IML74K) AppleWebKit/533.1 (KHTML, like Gecko) Mobile Safari/533.1
Android 4.0.3
MQQBrowser/3.7/Adr (L U; 4.0.3; zh- M9 Build/Flyme 1.0.1;640*960)
Meizu MX2 M040
Android 4.1
Mozilla/5.0 (L U; Android 4.1.1; zh-CN; M040 Build/JRO03H) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.4.1.362 U3/0.8.0 Mobile Safari/533.1
Meizu MX2 M040
Android 4.1
Mozilla/5.0 (L Android 4.1.1; M040 Build/JRO03H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36
Meizu MX2 M040
Android 4.1
Mozilla/5.0 (L Android 4.1.1; M040 Build/JRO03H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.64 Mobile Safari/537.36
Meizu MX2 M040
Android 4.1
Mozilla/5.0 (L U; Android 4.1.1; zh- M040 Build/JRO03H) AppleWebKit/534.24 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.24 T5/2.0 baidubrowser/4.2.4.0 (B P1 4.1.1)
Meizu MX M031
Android 4.1
-built-in *
Mozilla/5.0 (L U; Android 4.1.1; zh- M031 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Meizu MX M031
Android 4.1
Mozilla/5.0 (L U; Android 4.1.1; zh-CN; M031 Build/JRO03H) AppleWebKit/534.31 (KHTML, like Gecko) UCBrowser/8.8.3.278 U3/0.8.0 Mobile Safari/534.31
Meizu MX2 M040
Android 4.1
Mozilla/5.0 (L U; Android 4.1.1; zh- M040 Build/JRO03H) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/4.1 Mobile Safari/533.1
Meizu MX2 M040
Android 4.1
-built-in *
Mozilla/5.0 (L U; Android 4.1.1; zh- M040 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Samsung P6200(GALAXY Tab)
Android 3.2
Mozilla/5.0 (M U; Intel Mac OS X 10_6_3; en-us) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16
Samsung P6200(GALAXY Tab)
Android 3.2
Mozilla/5.0 (M U; Intel Mac OS X 10_6_3) AppleWebKit/534.31 (KHTML, like Gecko) Chrome/17.0.558.0 Safari/534.31 UCBrowser/2.3.1.257
通过验证,成功率95%以上。
方案二:开源类库WURFL
在线测试地址:
有什么更好的方式欢迎留言讨论。
浏览 14622
浏览: 442578 次
来自: 杭州
12:05:59,222 INFO Ms ...
Java实现读取excel文件到数据库中,也可以使用插件实现的 ...
先谢谢,楼主,还有我没有配置host便签
linux环境下的参考配置,基本可以用标哥的笔记,是记录在日常学习技术和日常开发中那些年遇到过的坑!本站为新站,原"标哥的技术博客"中的文章会慢慢移到本站,欢迎收藏本站!
在使用本站过程中,有任何建议请联系!
另,承接App开发、网站开发和微信小程序开发!欢迎
iOS XMPP:电子名片细讲(五)
本篇文章讲解XMPP中的电子名片和头像模块,只讲理论相关知识,不讲实践。本专题后续会有专门讲解如何使用电子名片和头像模块。在Extensions中有XEP-0054扩展,提供了一种可以通过XMPP发送电子名片的机制。vCard,也叫Versitcard,vCard的常用文件扩展名是.vcf。在XMPP中通过XMPPvCardTemp和XMPPvCardCoreDataStorage两个类来实现。 vCard是电子名片的文件格式标准,一般附加在电子邮件之后,但也可以用于其它场合,比如在因特网上相互交换。为XMPPSteam添加电子名片扩展功能Extensions扩展里的功能都是独立的,如果需要使用到相关功能,是需要自己手动添加的。当我们需要电子名片功能时,我们需要将电子名片扩展功能添加到XMPPStream中,才能使用。首先,我们得引入电子名片扩展功能头文件://&电子名片相关模块头文件引入
#import&&XMPPvCardTempModule.h&
#import&&XMPPvCardTemp.h&
#import&&XMPPvCardCoreDataStorage.h&其中,三个类分别对应这样的功能:XMPPvCardTemp 代表电子名片XMPPvCardCoreDataStorage 代表电子名片在core data存储XMPPvCardTempModule 用于提供电子名片增、删、改、查操作XMPPvCardTemp类XMPPvCardTemp就相当于电子名片类了,它是继承于NSXMLElement的。这个类提供了很多的属性,每个属性代表什么意思呢?电子名片上应该有什么,就会有哪些属性。看注释吧:@interface&XMPPvCardTemp&:&XMPPvCardTempBase
//&出生日期
@property&(nonatomic,&strong)&NSDate&*
@property&(nonatomic,&strong)&NSData&*
@property&(nonatomic,&strong)&NSString&*
//&full&name
@property&(nonatomic,&strong)&NSString&*formattedN
@property&(nonatomic,&strong)&NSString&*familyN
@property&(nonatomic,&strong)&NSString&*givenN
@property&(nonatomic,&strong)&NSString&*middleN
@property&(nonatomic,&strong)&NSString&*
@property&(nonatomic,&strong)&NSString&*
//&地址数组
@property&(nonatomic,&strong)&NSArray&*
//&Represents&the&actual&text&that&should&be&put&on&the&mailing&label&when&delivering&a&physical&package&to&the&person/object&associated&with&the&vCard&(related&to&the&ADR&property).
@property&(nonatomic,&strong)&NSArray&*
@property&(nonatomic,&strong)&NSArray&*telecomsA
@property&(nonatomic,&strong)&NSArray&*emailA
@property&(nonatomic,&strong)&XMPPJID&*
@property&(nonatomic,&strong)&NSString&*
@property&(nonatomic,&strong)&NSTimeZone&*timeZ
//&地埋位置
@property&(nonatomic,&strong)&CLLocation&*
@property&(nonatomic,&strong)&NSString&*
//&角色。标准说明:The&role,&occupation,&or&business&
//&category&of&the&vCard&object&within&an&organization.
@property&(nonatomic,&strong)&NSString&*
@property&(nonatomic,&strong)&NSData&*
//&标准定义:Information&about&another&person&who&will&act&
//&on&behalf&of&the&vCard&object.&Typically&this&would
//&be&an&area&administrator,&assistant,&or&secretary&
//&for&the&individual.&Can&be&either&a&URL&or&an&embedded&vCard.
@property&(nonatomic,&strong)&XMPPvCardTemp&*
@property&(nonatomic,&strong)&NSString&*orgN
&*&ORGUNITs&can&only&be&set&if&there&is&already&an&ORGNAME.&Otherwise,&changes&are&ignored.
//&部门信息
@property&(nonatomic,&strong)&NSArray&*orgU
//&A&list&of&&tags&&that&can&be&used&to&describe&the&object&represented&by&this&vCard.
//&也就是分类标签
@property&(nonatomic,&strong)&NSArray&*
@property&(nonatomic,&strong)&NSString&*
@property&(nonatomic,&strong)&NSString&*
@property&(nonatomic,&strong)&NSDate&*
@property&(nonatomic,&strong)&NSString&*sortS
@property&(nonatomic,&strong)&NSString&*phoneticS
@property&(nonatomic,&strong)&NSData&*
@property&(nonatomic,&strong)&NSString&*
//&个人网站URL
@property&(nonatomic,&strong)&NSString&*
//&电子名片版本
@property&(nonatomic,&strong)&NSString&*
@property&(nonatomic,&strong)&NSString&*
@property&(nonatomic,&assign)&XMPPvCardTempClass&privacyC
@property&(nonatomic,&strong)&NSData&*
@property&(nonatomic,&strong)&NSString&*keyT
+&(XMPPvCardTemp&*)vCardTempFromElement:(NSXMLElement&*)
+&(XMPPvCardTemp&*)vCardT
+&(XMPPvCardTemp&*)vCardTempSubElementFromIQ:(XMPPIQ&*)
+&(XMPPvCardTemp&*)vCardTempCopyFromIQ:(XMPPIQ&*)
+&(XMPPIQ&*)iqvCardRequestForJID:(XMPPJID&*)
-&(void)addAddress:(XMPPvCardTempAdr&*)
-&(void)removeAddress:(XMPPvCardTempAdr&*)
-&(void)clearA
-&(void)addLabel:(XMPPvCardTempLabel&*)
-&(void)removeLabel:(XMPPvCardTempLabel&*)
-&(void)clearL
-&(void)addTelecomsAddress:(XMPPvCardTempTel&*)
-&(void)removeTelecomsAddress:(XMPPvCardTempTel&*)
-&(void)clearTelecomsA
-&(void)addEmailAddress:(XMPPvCardTempEmail&*)
-&(void)removeEmailAddress:(XMPPvCardTempEmail&*)
-&(void)clearEmailA
@end下面是标准的一个小例子:&?xml&version=&1.0&&encoding=&UTF-8&?&
&vcards&xmlns=&urn:ietf:params:xml:ns:vcard-4.0&&
&&&&&&&parameters&
&&&&&&&&&type&
&&&&&&&&&&&text&work&/text&
&&&&&&&&&/type&
&&&&&&&/parameters&
&&&&&&&uri&tel:+1-111-555-1212&/uri&
&&&&&/tel&
&&&&&&&parameters&
&&&&&&&&&type&&text&work&/text&&/type&
&&&&&&&&&label&&text&100&Waters&Edge
&&&&&&&&&&&&&&&&&&&&&Baytown,&LA&30314
&&&&&&&&&&&&&&&&&&&&&United&States&of&America&/text&&/label&
&&&&&&&/parameters&
&&&&&/adr&
&&&&&email&&text&&/text&&/email&
&&&/vcard&
&/vcards&XMPPvCardCoreDataStorage关于这个类的说明,就简单讲一讲。@interface&XMPPvCardCoreDataStorage&:&XMPPCoreDataStorage&&
XMPPvCardAvatarStorage,
XMPPvCardTempModuleStorage&&
+&(instancetype)sharedI
@end它是一个单例类,直接与数据库有关。它遵守了XMPPvCardAvatarStorage,表示头像模块的存储代理,就可以将电子头像也写入电子名片数据库存储中。遵守了XMPPvCardTempModuleStorage,就可以直接通过XMPPvCardTemp类对电子名片进行增、删、改、查了。XMPPvCardTempModule继承于XMPPModule的类,主要是提供直接操作数据库的操作。@interface&XMPPvCardTempModule&:&XMPPModule
&&&&id&&XMPPvCardTempModuleStorage&&__strong&_xmppvCardTempModuleS
&&&&XMPPIDTracker&*_myvCardT
@property(nonatomic,&strong,&readonly)&id&&XMPPvCardTempModuleStorage&&xmppvCardTempModuleS
@property(nonatomic,&strong,&readonly)&XMPPvCardTemp&*myvCardT
-&(id)initWithvCardStorage:(id&&XMPPvCardTempModuleStorage&)
-&(id)initWithvCardStorage:(id&&XMPPvCardTempModuleStorage&)storage&dispatchQueue:(dispatch_queue_t)
//&若本地没有该电子名片,则从服务器提求
-&(void)fetchvCardTempForJID:(XMPPJID&*)
//&获取某个jid的电子名片,是否忽略本地所存储的电子名片
-&(void)fetchvCardTempForJID:(XMPPJID&*)jid&ignoreStorage:(BOOL)ignoreS
//&获取某个jid的电子名片,是否自动从服务器提求
-&(XMPPvCardTemp&*)vCardTempForJID:(XMPPJID&*)jid&shouldFetch:(BOOL)shouldF
//&这个API用于将电子名片存储到本地数据库,然后发送到服务器
-&(void)updateMyvCardTemp:(XMPPvCardTemp&*)vCardT
@protocol&XMPPvCardTempModuleDelegate
-&(void)xmppvCardTempModule:(XMPPvCardTempModule&*)vCardTempModule&
&&&&&&&&didReceivevCardTemp:(XMPPvCardTemp&*)vCardTemp&
&&&&&&&&&&&&&&&&&&&&&forJID:(XMPPJID&*)
-&(void)xmppvCardTempModuleDidUpdateMyvCard:(XMPPvCardTempModule&*)vCardTempM
-&(void)xmppvCardTempModule:(XMPPvCardTempModule&*)vCardTempModule&failedToUpdateMyvCard:(NSXMLElement&*)
@protocol&XMPPvCardTempModuleStorage&&NSObject&
-&(BOOL)configureWithParent:(XMPPvCardTempModule&*)aParent&queue:(dispatch_queue_t)
-&(XMPPvCardTemp&*)vCardTempForJID:(XMPPJID&*)jid&xmppStream:(XMPPStream&*)
-&(void)setvCardTemp:(XMPPvCardTemp&*)vCardTemp&forJID:(XMPPJID&*)jid&xmppStream:(XMPPStream&*)
-&(XMPPvCardTemp&*)myvCardTempForXMPPStream:(XMPPStream&*)
-&(BOOL)shouldFetchvCardTempForJID:(XMPPJID&*)jid&xmppStream:(XMPPStream&*)
@end如何激活电子名片功能激活电子名片功能,步骤如下://&电子名片数据存储
XMPPvCardCoreDataStorage&*vCardStorage&=&[XMPPvCardCoreDataStorage&sharedInstance];
//&添加电子名片模块
_vCardModule&=&[[XMPPvCardTempModule&alloc]&initWithvCardStorage:&vCardStorage];
[_vCardModule&activate:_xmppStream];小结笔者能力有限,所描述之处若有不正确之处,请在评论中指出,以便快速修正。
承接:ThinkPHP项目开发、网站项目开发、微信项目开发、微信小程序项目开发、App开发,欢迎联系标哥QQJavaScript(28)
**第一种:通过判断浏览器的userAgent,用正则来判断是否是ios和Android客户端。代码如下:**
&script type=&text/javascript&&
&& &var u = navigator.userA
&& &var isAndroid = u.indexOf('Android') & -1 || u.indexOf('Adr') & -1; //android终端
&& &var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
&& &alert('是否是Android:'+isAndroid);
&& &alert('是否是iOS:'+isiOS);
**第二种:检查是否是移动端(Mobile)、ipad、iphone、微信、QQ等。**
&script type=&text/javascript&&
//判断访问终端
var browser={
&&& versions:function(){
&&&&&&& var u = navigator.userAgent,
&&&&&& &&& &app = navigator.appV
&&&&&&& return {
&&&&&&&&&&& trident: u.indexOf('Trident') & -1, //IE内核
&&&&&&&&&&& presto: u.indexOf('Presto') & -1, //opera内核
&&&&&&&&&&& webKit: u.indexOf('AppleWebKit') & -1, //苹果、谷歌内核
&&&&&&&&&&& gecko: u.indexOf('Gecko') & -1 && u.indexOf('KHTML') == -1,//火狐内核
&&&&&&&&&&& mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
&&&&&&&&&&& ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
&&&&&&&&&&& android: u.indexOf('Android') & -1 || u.indexOf('Adr') & -1, //android终端
&&&&&&&&&&& iPhone: u.indexOf('iPhone') & -1 , //是否为iPhone或者QQHD浏览器
&&&&&&&&&&& iPad: u.indexOf('iPad') & -1, //是否iPad
&&&&&&&&&&& webApp: u.indexOf('Safari') == -1, //是否web应该程序,没有头部与底部
&&&&&&&&&&& weixin: u.indexOf('MicroMessenger') & -1, //是否微信 (新增)
&&&&&&&&&&& qq: u.match(/\sQQ/i) == & qq& //是否QQ
&&&&&&& };
&& &language:(navigator.browserLanguage || navigator.language).toLowerCase()
使用方法:
//判断是否IE内核
if(browser.versions.trident){ alert(&is IE&); }
//判断是否webKit内核
if(browser.versions.webKit){ alert(&is webKit&); }
//判断是否移动端
if(browser.versions.mobile||browser.versions.android||browser.versions.ios){ alert(&移动端&); }
检测浏览器语言
currentLang = navigator.&& //判断除IE外其他浏览器使用语言
if(!currentLang){//判断IE浏览器使用语言
&&& currentLang = navigator.browserL
alert(currentLang);
**第三种:判断iPhone|iPad|iPod|iOS|Android客户端,来自/JS-iphone-android.html**
if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
//判断iPhone|iPad|iPod|iOS
&&& //alert(navigator.userAgent); &
&&& window.location.href =&iPhone.html&;
} else if (/(Android)/i.test(navigator.userAgent)) {
//判断Android
&&& //alert(navigator.userAgent);
&&& window.location.href =&Android.html&;
&&& window.location.href =&pc.html&;
**第四种:判断pc还是移动端**
  //判断是否手机端访问
&& &var userAgentInfo = navigator.userAgent.toLowerCase();
&& &var Agents = [&android&, &iphone&,
&& &&&&&&&&&&&& &symbianos&, &windows phone&,
&& &&&&&&&&&&&& &ipad&, &ipod&];
&& &var ly=document.& //返回导航到当前网页的超链接所在网页的URL
&& &for (var v = 0; v & Agents. v++) {
&& &&&& if (userAgentInfo.indexOf(Agents[v]) &= 0&&(ly==&&||ly==null)) {
&& &&& &&& &this.location.href='http://m.***.com';& //wap端地址
本文前三种方法转载于/browser-ios-or-android.html
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:102760次
积分:1599
积分:1599
排名:千里之外
原创:48篇
转载:70篇
(1)(1)(2)(2)(3)(17)(1)(1)(7)(4)(6)(4)(5)(6)(23)(32)(3)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'}

我要回帖

更多关于 ios 获取用户appleid 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信