iOSã®UIWebViewã®ãã£ãã·ã¥ãã©ãããã¿ã¤ãã³ã°ã§ãªã»ããããã¦ããã®ãããããã¨ãã話
ãããã
ã¨ããWebãµã¼ãã®ãã¡ã¤ã«ã®å 容ãå¤ããã¨ãã UIWebView çµç±ã§ã¢ã¯ã»ã¹ããã¨æ´æ°ãåæ ãããªãç¾è±¡ãèµ·ãã£ãã
ã¾ããæ»ããã¿ã³ãæ´æ°ãã¿ã³ããªã«ãã¤ãã¦ããªãã£ãããããã®ç¶æ³ã§ã©ããã£ãããã£ãã·ã¥ãæ¨ã¦ã¦æ°ãããã¡ã¤ã«ãåå¾ã§ãããããããªãã£ãã
ç°å¢
ãµã¼ãã®å 容
å¤æ´ãããã¡ã¤ã« index.html
â <p>Hell World</p>
ï¼ <p>Hello World</p>
ã¨ããããæ´æ°ããããããã«ãããã¦ãªæè¨ã§ã
ä¸è¨ index.html ã«ã¢ã¯ã»ã¹ããçµæ
- iPhone Safari
- æ´æ°ããã
- iPhone ç¬èªã¢ããªå
ã® UIWebView
- æ´æ°ãããªãå ´åããã£ã
- ä¸è¨ã¨ã¯å¥ã® iPhone Safari
- æ´æ°ããã
- ãã¾ã: PCããã¢ã¯ã»ã¹ããå ´å(IEã ã£ãããª)
- æ´æ°ããã
試è¡åæ°ãä¸ååãªããå®å ¨ã§ã¯ãªãããã ããã¨ãããã UIWebView ã§ã®ã¢ã¯ã»ã¹æã¯æ´æ°ãããããããªãã£ããã(ã¢ããªã®ã¿ã¹ã¯ãåã£ãããé»æºON/OFFãããã試ãã)
Safari ã¯ç¢ºå®ã«æ´æ°ããããããæãã UIWebView ã Safari ã¨ã¯éã風ã«ãã£ãã·ã¥ãæã£ã¦ãã¦ããããæªãããã¦ããããããªããããã¨æ¨æ¸¬ã
解æ³
ã¨ããããã§ãã½ã¼ã¹å ã§æ示çã«ãã£ãã·ã¥ãåé¤ããã°ãã¯ãªã¼ã³ãªç¶æ ãä¿ã¦ãã®ã§ã¯ã
ãã£ãã·ã¥ããªã·ã¼ã®å¤æ´
使ç¨å
NSURLRequest *request = [NSURLRequest requestWithURL:url];
使ç¨å¾
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60.0];
ãã£ãã·ã¥ããªã·ã¼ã¯ä»¥ä¸ã®ãã®ãããã
- NSURLRequestUseProtocolCachePolicy
- NSURLRequestReloadIgnoringLocalCacheData
- (NSURLRequestReloadIgnoringCacheData ãç½®ãæãã£ããã®)
- NSURLRequestReloadIgnoringLocalAndRemoteCacheData
- NSURLRequestReloadRevalidatingCacheData
- NSURLRequestReturnCacheDataElseLoad
- NSURLRequestReturnCacheDataDontLoad
ååãé·ãâ¦ã
ãã£ãã·ã¥ãç¡è¦ããã«ã¯ NSURLRequestReloadIgnoringLocalCacheData
ã使ãã°ããã
ãã£ãã·ã¥å®¹éã 0 ã«
[[NSURLCache sharedURLCache] setMemoryCapacity:0];
ãã£ãã·ã¥å ¨æ¶ã
- ç¥ã£ã¦ãã¨æ¥½ã«ãªãUIWebViewé¢é£6ã¤ã®Tipsï½å¦ç¿A4ãã¹ãã¼ã @ Cocos2d-x ã¨ãã®åå¼·ã¡ã¢
- Objective-C - UIWebViewã使ãã¨ãã«æ°ãã¤ãã¦ããã㨠- Qiita [ãã¼ã¿]
[[NSURLCache sharedURLCache] removeAllCachedResponses];
ãå¼ã¹ã°ãã£ãã·ã¥ãå ¨æ¶ãã§ããããã
ãããã¯ã¼ã¯æ å ±ãç£è¦ã§ããã©ã¤ãã©ãª
- Cocoaã®æ¥ã : [iOS] ãããã¯ã¼ã¯æ¥ç¶ç¶æ³åå¾ã©ã¤ãã©ãªãå ¬é
- dev5tec/FBNetworkReachability · GitHub
çµæ
ä»åã¯å¼·å¼ã« UIWebView#shouldStartLoadWithRequest:navigationType:
ã§æ¯åãã£ãã·ã¥ãåé¤ããããã«ããã
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType {
[[NSURLCache sharedURLCache] removeAllCachedResponses];
(å¦ç)
// ãã£ãã·ã¥ã®å
容ãåå¾ãã¦è¡¨ç¤º(æåã³ã¼ãã¯Shift_JIS)
NSCachedURLResponse *cachedData = [[NSURLCache sharedURLCache] cachedResponseForRequest:request];
NSData *data = [cachedData data];
NSString *html = [[NSString alloc] initWithData:data encoding:NSShiftJISStringEncoding];
NSLog(@"%@", html);
(以ä¸ç¥)
ããã§ãç»é¢é·ç§»ã¨ãã¼ã ã§çµäºããåèµ·åããã¨ããä¸å¿ãã£ãã·ã¥ãè¦ãäºã¯ãªããªã£ãã¯ãã
ãã ããåç´ã«ããã ãã追å ããã¨æ¯ååçç¡ç¨ã§ãã£ãã·ã¥ãæ¶ãã®ã§é度ã®åé¡ã¨ãããããã
TODO
- ã¢ã¿ãªã¯ã¤ããããã®ã§ããã®è¾ºã®ããã¥ã¡ã³ãã調ã¹ã¦ã¿ã
- iOS 7 ã§ã¯ã©ããªã£ã¦ããã®ã
ãã¾ã: ãã¼ã ã§çµäºããå ´åã«ã¢ããªãçµãããã
ã¾ããä¸è¨ã®å¯¾å¿ãããã ãã ã¨ã iPhone ããã¼ã ãã¿ã³ã§çµäºããå¾ãå度ã¢ããªãèµ·åããã¨æªæ´æ°ã®ã¾ã¾åãç»é¢ãåºã¦ãã¾ãâ¦ã
ã¨ããäºã§ããã¼ã ã§çµäºããå ´åãåèµ·åæã¯åçç¡ç¨ã§ã¯ããããã¨ããããã«ãããã
PROJECT_NAME-Info.plist
ã¨ãããã¡ã¤ã«ã®ä¸ã« Application does not run in background
(ã¢ããªã±ã¼ã·ã§ã³ãããã¯ã°ã©ã¦ã³ãã§èµ°ãããªã) ã¨ããé
ç®ãããã®ã§ããã YES
ã«ã
ã½ã¼ã¹ã§è¦ã㨠UIApplicationExitsOnSuspend
ãå¤ãã£ã¦ããã
<key>UIApplicationExitsOnSuspend</key>
â <false/>
ï¼ <true/>