• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iOS开发之一句代码检测APP版本的更新-Swift版本

原作者: [db:作者] 来自: [db:来源] 收藏 邀请


//新建一个NSObject类,将以下代码拷贝到此类中。


class HKVersionManager: NSObject {

    

    init(appleId: String) {

        super.init()

        // 获取appstore上的最新版本号

        let appUrl = URL.init(string: "http://itunes.apple.com/lookup?id=" + appleId)

        let appMsg = try? String.init(contentsOf: appUrl!, encoding: .utf8)

        let appMsgDict:NSDictionary = getDictFromString(jString: appMsg!)

        let appResultsArray:NSArray = (appMsgDict["results"] as? NSArray)!

        if appResultsArray.count==0 {

            return

        }

        let appResultsDict:NSDictionary = appResultsArray.lastObject as! NSDictionary

        let appStoreVersion:String = appResultsDict["version"] as! String

        let appStoreVersion_Float:Float = Float(appStoreVersion)!

        

        // 获取当前手机安装使用的版本号

        let localVersion:String = Bundle.main.infoDictionary!["CFBundleShortVersionString"] as! String

        let localVersion_Float:Float = Float(localVersion)!

        

        // 用户是否设置不再提示

        let userDefaults = UserDefaults.standard

        let res = userDefaults.bool(forKey: "NO_ALERt_AGAIN")

        // appstore上的版本号大于本地版本号 - 说明有更新

        if appStoreVersion_Float != localVersion_Float && !res {

            let alertC = UIAlertController.init(title: "版本更新了",

                                                message: "是否前往更新",

                                                preferredStyle: .alert)

            let yesAction = UIAlertAction.init(title: "去更新",

                                               style: .default,

                                               handler: { (handler) in

                                                self.updateApp(appId:appleId)

            })

            let noAction = UIAlertAction.init(title: "下次再说",

                                              style: .cancel,

                                              handler: nil)

            let cancelAction = UIAlertAction.init(title: "不再提示",

                                                  style: .default,

                                                  handler: { (handler) in

                                                    self.noAlertAgain()

            })

            alertC.addAction(yesAction)

            alertC.addAction(noAction)

            alertC.addAction(cancelAction)

            UIApplication.shared.keyWindow?.rootViewController?.present(alertC, animated: true, completion: nil)

        }

    }

    

    /// 去更新

    @available(iOS 10.0, *)

    func updateApp(appId:String) {

        let updateUrl:URL = URL.init(string: "http://itunes.apple.com/app/id" + appId)!

        if #available(iOS 10.0, *) {

            UIApplication.shared.open(updateUrl, options: [:], completionHandler: nil)

        } else {

            // Fallback on earlier versions

        }

    }

    

    /// 不再提示

    func noAlertAgain() {

        let userDefaults = UserDefaults.standard

        userDefaults.set(true, forKey: "NO_ALERt_AGAIN")

        userDefaults.synchronize()

    }

    

    /// JSONString转字典

    func getDictFromString(jString:String) -> NSDictionary {

        let jsonData:Data = jString.data(using: .utf8)!

        let dict = try? JSONSerialization.jsonObject(with: jsonData, options: .mutableContainers)

        if dict != nil {

            return dict as! NSDictionary

        }

        

        return NSDictionary()

    }

    

    

}

  在需要检测的类中调用一句代码即可

        //版本检测
        _ = HKCheckVersionManager.init(appId: "你的apple id")

  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
swift 代码规范发布时间:2022-07-13
下一篇:
swift 代码创建UITableView以及部分swift的讲解发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap