对于更新,Apple建议让用户访问HTML页面并点击链接:
href="itms-services://?action=download-manifest&url=http://example.com/ manifest.pList"
见http://help.apple.com/iosdeployment-apps/#app43ad871e
我不想这样做.我希望应用程序以编程方式检查启动时的更新,并使用UIAlertVIEw提醒用户可以获得更新.
这是我到目前为止在应用中所做的事.FinishLaunching.复杂的pList解析来自这里找到的示例pList的结构:http://help.apple.com/iosdeployment-apps/#app43ad78b3
NSLog(@"checking for update");NSData *pListData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://example.com/MyApp.pList"]];if (pListData) { NSLog(@"finished checking for update"); NSError *error; nspropertyListFormat format; NSDictionary *pList = [nspropertyListSerialization propertyListWithData:pListData options:nspropertyListImmutable format:&format error:&error]; if (pList) { NSArray *items = [pList valueForKey:@"items"]; NSDictionary *dictionary; if ([items count] > 0) { dictionary = [items objectAtIndex:0]; } NSDictionary *MetaData = [dictionary objectForKey:@"Metadata"]; float currentVersion = [[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundLeversion"] floatValue]; float newVersion = [[MetaData objectForKey:@"bundle-version"] floatValue]; NSLog(@"newVersion: %f,currentVersion: %f",newVersion,currentVersion); if (newVersion > currentVersion) { NSLog(@"A new update is available"); UIAlertVIEw *alert = [[UIAlertVIEw alloc] initWithTitle:@"Update available" message:@"A new update is available." delegate:self cancelbuttonTitle:@"Cancel" otherbuttonTitles:@"UPDATE",nil]; [alert show]; } }}
然后我有我的UIAlertVIEw委托方法:
- (voID)alertVIEw:(UIAlertVIEw *)alertVIEw clickedbuttonAtIndex:(NSInteger)buttonIndex{ if (buttonIndex == 1) { NSLog(@"downloading full update"); UIWebVIEw *webVIEw = [[UIWebVIEw alloc] init]; [webVIEw loadRequest:[[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"itms-services://?action=download-manifest&url=http://example.com/MyApp.pList"] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10.0]]; }}
一些东西:
>我知道[alert show]不应该在应用程序dIDFinish中调用,但我稍后会更改它.
>我不知道下载pListData的速度有多快以及下载如何影响应用程序.
>更重要的是,我的警报视图委托方法不起作用,并且不下载更新.即使我使用@property(非原子,强)UIWebVIEw * webVIEw引入webVIEw,该方法也不会做任何事情.
>我认为DropBox已正确配置MIME,因为我可以通过谷歌Chrome下载.ipa.
所以我真正需要的是使用NSURLConnection(NSURLRequest等)来复制用户点击HTML href的行为.之后,我认为将进行全面更新.
解决方法 您可以使用自动打开URL[[UIApplication sharedApplication] openURL:...];
我不知道它是否适用于itms-services:urls,但它适用于其他定制的URL方案,如tel:,fb:等,所以它应该做,除非Apple特别阻止它.
总结以上是内存溢出为你收集整理的iphone – 以编程方式点击HTML href以更新应用程序全部内容,希望文章能够帮你解决iphone – 以编程方式点击HTML href以更新应用程序所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)