此库提供在应用中自动更新基于 Web 内容的功能。基本上,您项目中存储在 www
文件夹中的所有内容都可以使用此库进行更新。
当您将应用发布到商店时 - 您会将所有 Web 内容打包进去:html 文件、JavaScript 代码、图片等。您有两种方法可以更新它
此库旨在解决所有这些问题。当用户第一次启动应用时 - 它会将所有 Web 文件复制到外部存储。从此刻起,所有页面都从外部文件夹加载,而不是从打包的包加载。在每次启动时,库都会连接到您的服务器(可选身份验证,见下面的 fetchUpdate()),并检查是否有可下载的 Web 项目新版本。如果有 - 它会在设备上加载它并在下一次启动时安装。
结果,您的应用可以尽快收到 Web 内容的更新,并且仍然可以离线工作。此外,库允许您指定 Web 发布和原生版本之间的依赖关系,以确保新版本可以在旧版本的应用上运行。
这与 App Store 的规定相符吗? 是的,它符合规定...只要您的内容符合应用的目的,并且您不会要求用户点击按钮来更新 Web 内容。有关更多详细信息,请参阅 此维基页面。
iOS 7.0 或更高版本。需要 Xcode 7。
要使用 CocoaPods 将 MHotCodePush 集成到您的 Xcode 项目中,在您的 Podfile
中指定它
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '7.0'
target 'TargetName' do
pod 'MHotCodePush'
end
然后,运行以下命令
$ pod install
我建议您安装 M Hot Code Push CLI 客户端。此客户端将帮助您轻松生成必要的配置文件;
当然,您可以使用此库而不使用 CLI 客户端,但这将使您的生活更加简单。
HCPHelper
管理所有任务。
NSURL *webUrl = [NSURL URLWithString:@"http://example.com"];
HCPHelper *hcpHelper = [[HCPHelper alloc] initWithWebUrl:webUrl];
[hcpHelper fetchUpdate:^(BOOL needUpdate, NSError *error)
{
}
[hcpHelper downloadUpdate:^(BOOL success, NSInteger totalFiles, NSInteger fileDownloaded, NSError *error)
{
}
[hcpHelper installUpdate:^(BOOL success, NSError *error)
{
}
NSURL *wwwUrl = [hcpHelper pathToWww];
BOOL isLoadFromExternalStorageFolder = [hcpHelper loadFromExternalStorageFolder];
所有文档的详细信息都可以在我们的GitHub Wiki上找到。