美文网首页
App内提示应用版本更新Siren库使用介绍

App内提示应用版本更新Siren库使用介绍

作者: 五月飞 | 来源:发表于2016-07-05 09:46 被阅读441次
    version.png

    这是一张定义版本号的说明图,为了方便我们接下来的演示:

    • A.b.c.d表示有重大更新
    • a.B.c.d表示有小更新
    • a.b.C.d表示有补丁更新
    • a.b.c.D表示有修订更新

    我们知道如果自己动手实现APP版本更新,首先需要拿到AppStore上面的APP版本号与手机上的APP版本号作对比实现更新功能。我们可以利用苹果为我们提供的获取AppStore网站上面应用信息的接口来拿到版本号信息

    //第一种方式
    http://itunes.apple.com/lookup?id=应用的AppID
    //第二种方式
    http://itunes.apple.com/lookup?bundleId=应用的Bundld
    
    BundleID和AppID.png

    大家可以测试一下,在URL后面补齐参数,发送POST请求,然后看一下返回的数据里面有没有Version字段,下面是我利用Paw工具拿到的结果:

    SendRequest.png

    AppStore网站上面的应用版本号我们已经拿到了,下面我们来获取本地APP里面的版本号,这个比较容易拿到,可以使用下面这个方法:

    let version = (NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") as? String)  ?? "Unknown"
    print("\(version)")//打印结果:3.9.5
    

    这样应用商店里的APP版本号和安装在手机里的APP版本号,我们都拿到了,这样对比做版本更新就变得很容易了。那么我们接着正式开始介绍今天的主角Siren:

    首先我们需要把它写在AppDelegate里面,我定义了一个AppDelegate扩展类,将方法实现都写在里面,如下图:

    import Foundation
    import Siren
    
    extension AppDelegate {
        //定义方法,然后在AppDelegate调用
        func setupSiren() {
            //TODO
        }
    }
    

    我们在setupSiren方法里面初始化Siren,并配置好它的一些参数

    extension AppDelegate {
        
        /**
         方法调用在Window.makeKeyAndVisible()之前,用来检查是否需要版本更新
         */
        func setupSiren() {
       
            let siren = Siren.sharedInstance
            /**
             * .Force  强制(显示一个按钮)
             * .Option 选项 (显示两个按钮,取消和更新)
             * .Skip  跳过 (显示三个按钮,取消和更新和跳过)
             * .None
             */
            siren.alertType = .Force
            /**
             * .Immediately  立即
             * .Daily  每天
             * .Weekly  每周
             */
            siren.checkVersion(.Immediately)
    
            //APP的名字
            siren.appName = "点帮帮"
            
            //开启debug状态,就会显示请求回来的json数据
            siren.debugEnabled = false 
            
            //大的更新 A.b.c.d
            siren.majorUpdateAlertType = .Force
            //小的更新 a.B.c.d
            siren.minorUpdateAlertType = .Skip
            //补丁更新 a.b.C.d
            siren.patchUpdateAlertType = .Option
            //修订更新 a.b.c.D
            siren.revisionUpdateAlertType = .Option
    
            //设置提示按钮颜色
            siren.alertControllerTintColor = UIColor.blueColor()
            
            //打印应用商店APP的版本号
            print("\(siren.currentAppStoreVersion)")
        }
     
    }
    

    配置参数完成之后,启动APP检测到版本更新,它会自动弹出提示框,如图:

    默认版本更新展示.png

    以上就是它的基本用法了,如果你想点击之后,再做点什么,可以通过遵守协议,实现它的代理方法,如下图

        //MARK: - SirenDelegate
        
        //用户提供更新对话框
        func sirenDidShowUpdateDialog(alertType: SirenAlertType) {
            
        }
        //用户点击了按钮,跳转到AppStore应用上
        func sirenUserDidLaunchAppStore() {
            
        }
        //用户点击了按钮,取消更新对话框
        func sirenUserDidCancel() {
            
        }
        //用户点击了按钮,跳过版本更新
        func sirenUserDidSkipVersion() {
            
        }
        //未能执行版本检查,返回系统级错误
        func sirenDidFailVersionCheck(error: NSError) {
            
        }
        //版本检查成功的回调方法
        func sirenDidDetectNewVersionWithoutAlert(message: String) {
            print("\(message)")
        }
    

    温馨提示:如果你是新建的工程来测试,需要把工程里的BundleID和应用商店的APP对应上,Version要设置的比应用商店的APP版本低一些

    相关文章

      网友评论

          本文标题: App内提示应用版本更新Siren库使用介绍

          本文链接:https://www.haomeiwen.com/subject/wfhfjttx.html