我想知道如何更改iOS上的Cordova(Phonegap)2.4.0上的用戶代理。如何更改用於iOS的Cordova(Phonegap)2.4.0上的用戶代理?
我已經閱讀了用於更改iOS用戶代理的解決方案。 Change Phonegap User Agent
但它不適用於2.4.0。 :p
我認爲有關用戶代理有關InAppBrowser功能的一些更改... 但我找不出爲什麼上層代碼無法正常工作。
你有什麼想法嗎?
我想知道如何更改iOS上的Cordova(Phonegap)2.4.0上的用戶代理。如何更改用於iOS的Cordova(Phonegap)2.4.0上的用戶代理?
我已經閱讀了用於更改iOS用戶代理的解決方案。 Change Phonegap User Agent
但它不適用於2.4.0。 :p
我認爲有關用戶代理有關InAppBrowser功能的一些更改... 但我找不出爲什麼上層代碼無法正常工作。
你有什麼想法嗎?
是的,事實上,用戶代理處理從2.4開始有所改變。所有的魔法現在發生在CDVUserAgentUtil類中。目前科爾多瓦不提供任何標準方式來覆蓋/延長用戶代理(但他們有它的路線圖:看到CB-2520
總之,我創造了這個解決辦法,其2.5版本的工作對我罰款: (我放置在片段中的AppDelegate中:didFinishLaunchingWithOptions功能)
注:科爾多瓦保存在用戶設置了代理,當應用程序首次啓動時或局部的變化,我們只需要覆蓋默認設置科爾多瓦創建之前。如果有緩存可用,我們不需要再次運行這個代碼
NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
NSString *isAgentDefined = [userDefaults stringForKey:@"Cordova-User-Agent"];
if(isAgentDefined == nil) {
UIWebView* sampleWebView = [[UIWebView alloc] initWithFrame:CGRectZero];
NSString *defaultAgent = [sampleWebView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
[sampleWebView release];
NSString *myAgent = @"My custom User-Agent";
NSString *userAgent = [NSString stringWithFormat:@"%@ %@", defaultAgent, myAgent];
[CDVUserAgentUtil acquireLock:^(NSInteger lockToken) {
[CDVUserAgentUtil setUserAgent:userAgent lockToken:lockToken];
[CDVUserAgentUtil releaseLock:&lockToken];
}];
}
我遇到同樣的問題在iOS科爾多瓦3.3和CB-2520依然存在,所以我砍死在CDVViewController.m userAgent屬性,這是很骯髒很明顯,但工作。
嗨,編輯你的答案,加入'''#import'''語句來編譯它。嘗試查看是否可行,並在Cordova應用程序的index.html中放入''''''但用戶代理字符串不包含」我的自定義用戶代理「 - 任何想法? – 2013-04-14 22:53:06
嗨,我知道這從2013年的日期,但我想問@ andreast00,我有問題,用戶代理成功更改,但只有第一次打開我的應用程序。如何讓應用程序在我退出後不緩存或清除緩存? – 2017-06-28 09:57:33