IOS8 Today Widget 总结

自从IOS8以来, 很多Containing App都定制属于自己的widget,关于简介与通用知识, 建议到

http://blog.csdn.net/yongyinmg/article/details/40982791

http://www.cocoachina.com/industry/20140627/8960.html

http://www.hmttommy.com/2014/11/02/widget/

这几个博客里面看看去, 写得比较详细。

下面来说一说,在这里面的网络请求的问题吧。

既然他是独立出来的沙盒, 那么很多人就会尝试在里面用网络请求请求数据来应用。可是当我们按正常思路尝试的时候我们就会发现,我~~~,各种崩溃,各种没有。

其实苹果虽然开放了widget,但是给予我们的约束又是多的不能再多了,其中一点就是我们要直接把数据直接加载到view里面。那么问题来了, 我们该怎样获取到数据来加载呢, 推荐办法就是看看上面的微博, 建立group,从Containing App里面拿做好缓存的数据。另外一个办法就是-(void)beginRequestWithExtensionContext:(NSExtensionContext *)context他喽。你在运行程序的时候会发现, 每次程序运行会先走这个方法,然后才会viewDidLoad.所以我们要在这个函数里面把我们所有想要进行的网络请求处理了就ok啦(图片也要下载成本地的data)。还有其他的就看看上面的微博吧,说的比较详细了。如果还有什么问题可以问我。就像这个样子, 在那里面调用它,数据就回来了。对了,写widget的时候一定要注意内存问题。切记。

- (NSDictionary *)networkWithURl:(NSString *)URl {
	
	NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:URl]];
	[request setHTTPMethod:@"GET"];
	
	NSURLResponse *response = nil;
	NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:NULL];
	mydata = data;
	id result = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:NULL];
	
	if ([result isKindOfClass:[NSDictionary class]]) {
		return result;
	}
	return nil;
}


你可能感兴趣的:(IOS,Today,Widget,网络请求,iOS,沙盒)