iphone – 以编程方式点击HTML href以更新应用程序

iphone – 以编程方式点击HTML href以更新应用程序,第1张

概述我正在为具有临时分发的企业应用程序进行更新计划. 对于更新,Apple建议让用户访问HTML页面并点击链接: href="itms-services://?action=download-manifest&url=http://example.com/
manifest.plist" 见http://help.apple.com/iosdeployment-apps/#app43ad871e 我不 我正在为具有临时分发的企业应用程序进行更新计划.

对于更新,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以更新应用程序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1080576.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存