आईओएस में उपयोगकर्ता एजेंट का पता लगाने के एक आसान तरीका .लेकिन इस तरह से दो नुकसान है यह this SO post को स्वीकार कर लिया जवाब का उपयोग कर एक UIWebView से सीधे प्राप्त करने के लिए है:
1, UIWebView का पहला आवंटन समय लग सकता है वेबव्यू संदर्भ शुरू करने में बहुत अधिक समय।
2, कोड मुख्य धागे में निष्पादित किया जाना चाहिए। यह मुख्य धागा फंस सकता है।
यदि आप ऐप स्टोर समीक्षा से इनकार करते हुए निजी तरीकों का उपयोग कैसे करें, इस बारे में आप जानते हैं। एक वेब अनुरोध बनाने के लिए और यह materialisation के लिए प्रतीक्षा HTTP शीर्ष लेख प्राप्त करने के लिए की आवश्यकता नहीं है
#define CALL_PRIVATE_INSTANCEMETHOD(x,sel,q)\
{\
SEL selector = NSSelectorFromString([NSString stringWithFormat:@"%@",@#sel]);\
if ([x respondsToSelector:selector]) {\
_Pragma("clang diagnostic push")\
_Pragma("clang diagnostic ignored \"-Warc-performSelector-leaks\"")\
q=[x performSelector:selector];\
_Pragma("clang diagnostic pop")\
}\
}\
#define CALL_PRIVATE_CLASSMETHOD_ONEPARAM(x,sel,p,q)\
{\
SEL selector = NSSelectorFromString([NSString stringWithFormat:@"_%@:",@#sel]);\
if ([x respondsToSelector:selector]) {\
_Pragma("clang diagnostic push")\
_Pragma("clang diagnostic ignored \"-Warc-performSelector-leaks\"")\
q=[x performSelector:selector withObject:p];\
_Pragma("clang diagnostic pop")\
}\
}\
+ (NSString *)standardUserAgent{
NSString *buildVersion = nil;
CALL_PRIVATE_INSTANCEMETHOD([UIDevice currentDevice], buildVersion,buildVersion);
Class webViewCls = NSClassFromString([NSString stringWithFormat:@"%@%@",@"Web",@"View"]);
NSString *standardUA = nil;
NSString *versions = [NSString stringWithFormat:@"Mobile/%@",buildVersion];
CALL_PRIVATE_CLASSMETHOD_ONEPARAM(webViewCls, standardUserAgentWithApplicationName,versions,standardUA);
return standardUA;
}
स्रोत
2016-01-29 19:13:46
:
आप नीचे दिए गए कोड की कोशिश कर सकते हैं। मेरे लिए यह जवाब है! धन्यवाद –
इसके लिए धन्यवाद, यह काम करता है। एक महत्वपूर्ण नोट यह है कि, आपको इसे मुख्य धागे में कॉल करने की आवश्यकता है। इस प्रकार कुछ परिस्थितियों में, आपको dispatch_async (dispatch_get_main_queue(),^{...}) के अंदर अपने उत्तर का कोड लपेटने की आवश्यकता हो सकती है; – haxpor