123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301 |
- //
- // RegisterLoginViewController.swift
- // RainbowPlanet
- //
- // Created by 南鑫林 on 2019/3/22.
- // Copyright © 2019 南鑫林. All rights reserved.
- //
- import UIKit
- import SwiftyMediator
- import SwiftyJSON
- class RegisterLoginViewController: BaseViewController {
-
- override func didReceiveMemoryWarning() {
- super.didReceiveMemoryWarning()
- }
-
- deinit {
- NXLLog("deinit")
- NotificationCenter.default.removeObserver(self)
- }
- override func viewDidLoad() {
- super.viewDidLoad()
- setupViews()
- setupLayouts()
- setupData()
- }
- override func setupViews() {
- navigationBar.wr_setBackgroundAlpha(alpha: 0)
- navigationBar.wr_setBottomLineHidden(hidden: true)
- navigationBar.wr_setLeftButton(image: kImage(name: "nav_close_white")!)
- statusBarStyle = .lightContent
- view.addSubview(playerView)
- view.addSubview(bgView)
- view.addSubview(iconImageView)
- view.addSubview(oneBuiltLoginButton)
- view.addSubview(mobileLoginButton)
- view.addSubview(weixinLoginButton)
- view.addSubview(QQLoginButton)
- view.addSubview(agreementLabel)
- view.addSubview(agreementButton)
- view.insertSubview(navigationBar, aboveSubview: playerView)
- view.insertSubview(navigationBar, aboveSubview: bgView)
- }
- override func setupLayouts() {
- playerView.snp.makeConstraints { (make) in
- make.edges.equalToSuperview()
- }
- bgView.snp.makeConstraints { (make) in
- make.edges.equalToSuperview()
- }
- iconImageView.snp.makeConstraints { (make) in
- make.centerX.equalToSuperview()
- make.top.equalTo(56 + kNavBarTotalHeight)
- }
- oneBuiltLoginButton.snp.makeConstraints { (make) in
- make.bottom.equalTo(mobileLoginButton.snp.top).offset(-15)
- make.left.equalTo(30)
- make.right.equalTo(-30)
- make.height.equalTo(48)
- }
- oneBuiltLoginButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.left, imageTitleSpace: 5)
-
- mobileLoginButton.snp.makeConstraints { (make) in
- make.bottom.equalTo(QQLoginButton.snp.top).offset(-20)
- make.left.equalTo(30)
- make.right.equalTo(-30)
- make.height.equalTo(48)
- }
- mobileLoginButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.left, imageTitleSpace: 5)
-
- weixinLoginButton.snp.makeConstraints { (make) in
- make.bottom.equalTo(agreementLabel.snp.top).offset(-15)
- make.centerX.equalToSuperview().offset(-30)
- }
- QQLoginButton.snp.makeConstraints { (make) in
- make.bottom.equalTo(agreementLabel.snp.top).offset(-15)
- make.centerX.equalToSuperview().offset(30)
- }
-
- agreementLabel.snp.makeConstraints { (make) in
- make.bottom.equalTo(-(kSafeTabBarHeight+20))
- make.centerX.equalToSuperview().offset(10)
- }
-
- agreementButton.snp.makeConstraints { (make) in
- make.right.equalTo(agreementLabel.snp.left).offset(-5)
- make.centerY.equalTo(agreementLabel)
- make.size.equalTo(15)
- }
-
- }
-
- override func setupData() {
-
- player.play()
-
- if (UMSocialManager.default()?.isInstall(.wechatSession) ?? true) { //验证
- weixinLoginButton.isHidden = false
- weixinLoginButton.snp.updateConstraints { (make) in
- make.centerX.equalToSuperview().offset(-30)
- }
- QQLoginButton.snp.updateConstraints { (make) in
- make.centerX.equalToSuperview().offset(30)
- }
- }else {
- weixinLoginButton.isHidden = true
- QQLoginButton.snp.updateConstraints { (make) in
- make.centerX.equalToSuperview()
- }
- }
-
- agreementLabel.addClickText("由你用户协议", attributeds: [NSAttributedString.Key.font:kRegularFont13 as Any,NSAttributedString.Key.foregroundColor:kffffffColor,NSAttributedString.Key.underlineStyle:NSUnderlineStyle.single.rawValue,NSAttributedString.Key.underlineColor:kffffffColor], transmitBody: nil) {
- (data) in
- Mediator.push(H5RouterModuleType.pushContentId6)
- }
- agreementLabel.addClickText("隐私条款", attributeds: [NSAttributedString.Key.font:kRegularFont13 as Any,NSAttributedString.Key.foregroundColor:kffffffColor,NSAttributedString.Key.underlineStyle:NSUnderlineStyle.single.rawValue,NSAttributedString.Key.underlineColor:kffffffColor], transmitBody: nil) {
- (data) in
- Mediator.push(H5RouterModuleType.pushContentId11)
- }
-
- navigationBar.onClickLeftButton = {
- [weak self] in
- //移除本地用户信息
- UserModel.shared().removeLoginModel()
- self?.navigationController?.dismiss(animated: true, completion: nil)
- }
-
- //一键登录
- weak var weakSelf = self
- oneBuiltLoginButton.rx.tap.subscribe(onNext: {[weak self] _ in
- if (self?.agreementButton.isSelected)! {
- ATAuthSDKManager.oneBuiltLogin(vc:weakSelf)
- }else {
- SwiftProgressHUD.shared().showText("请您先同意用户协议")
- }
- }).disposed(by: disposeBag)
-
- // 手机验证码或密码登录
- mobileLoginButton.rx.tap.subscribe(onNext: { [weak self] in
- if (self?.agreementButton.isSelected)! {
- self?.navigationController?.pushViewController(MobileLoginViewController(), animated: true)
- }else {
- SwiftProgressHUD.shared().showText("请您先同意用户协议")
- }
- }).disposed(by: disposeBag)
-
- //微信登录
- weixinLoginButton.rx.tap.subscribe(onNext: { [weak self] in
- self?.tripartiteLogin(platformType: UMSocialPlatformType.wechatSession, loginType: LoginType.weixin)
- }).disposed(by: disposeBag)
-
- //QQ登录
- QQLoginButton.rx.tap.subscribe(onNext: { [weak self] in
- self?.tripartiteLogin(platformType: UMSocialPlatformType.QQ, loginType: LoginType.qq)
- }).disposed(by: disposeBag)
-
- agreementButton.rx.tap.subscribe(onNext: { [weak self] in
- self?.agreementButton.isSelected = !(self?.agreementButton.isSelected)!
- }).disposed(by: disposeBag)
- }
-
- private lazy var bgView: UIView = {
- let bgView = UIView()
- bgView.backgroundColor = UIColor(white: 0, alpha: 0.68)
- return bgView
- }()
-
- private lazy var iconImageView: UIImageView = {
- let iconImageView = UIImageView()
- iconImageView.image = kImage(name: "logo_slogan")
- return iconImageView
- }()
-
- private lazy var oneBuiltLoginButton: UIButton = {
- let oneBuiltLoginButton = UIButton(type: UIButton.ButtonType.custom)
- oneBuiltLoginButton.setTitle("手机号码一键登录", for: UIControl.State.normal)
- oneBuiltLoginButton.setTitleColor(k333333Color, for: UIControl.State.normal)
- oneBuiltLoginButton.titleLabel?.font = kMediumFont16
- oneBuiltLoginButton.setImage(kImage(name: "login_ico_iphone"), for: UIControl.State.normal)
- oneBuiltLoginButton.setBackgroundImage(UIImage.imageWithColor(color: kffffffColor), for: UIControl.State.normal)
- oneBuiltLoginButton.layer.cornerRadius = 24
- oneBuiltLoginButton.layer.masksToBounds = true
- return oneBuiltLoginButton
- }()
-
- private lazy var mobileLoginButton: UIButton = {
- let mobileLoginButton = UIButton(type: UIButton.ButtonType.custom)
- mobileLoginButton.setTitle("手机验证码或密码登录", for: UIControl.State.normal)
- mobileLoginButton.setTitleColor(kffffffColor, for: UIControl.State.normal)
- mobileLoginButton.titleLabel?.font = kMediumFont16
- mobileLoginButton.setImage(kImage(name: "login_ico_password"), for: UIControl.State.normal)
- mobileLoginButton.setBackgroundImage(UIImage.imageWithColor(color: kffffffColor.withAlphaComponent(0.52)), for: UIControl.State.normal)
- mobileLoginButton.cornerRadius = 24
- mobileLoginButton.masksToBounds = true
- return mobileLoginButton
- }()
-
- private lazy var weixinLoginButton: UIButton = {
- let weixinLoginButton = UIButton(type: UIButton.ButtonType.custom)
- weixinLoginButton.setImage(kImage(name: "login_ico_wehcat"), for: UIControl.State.normal)
- return weixinLoginButton
- }()
-
- private lazy var QQLoginButton: UIButton = {
- let QQLoginButton = UIButton(type: UIButton.ButtonType.custom)
- QQLoginButton.setImage(kImage(name: "login_ico_qq"), for: UIControl.State.normal)
- return QQLoginButton
- }()
-
- private lazy var agreementLabel: FMLinkLabel = {
- let agreementLabel = FMLinkLabel()
- agreementLabel.numberOfLines = 0
- agreementLabel.textColor = kbbbbbbColor
- agreementLabel.font = kRegularFont12
- agreementLabel.isUserInteractionEnabled = true
- agreementLabel.text = "登录即表示你已阅读并同意 由你用户协议 和 隐私条款"
- agreementLabel.textAlignment = .center
- return agreementLabel
- }()
-
- private lazy var agreementButton: UIButton = {
- let agreementButton = UIButton(type: UIButton.ButtonType.custom)
- agreementButton.isSelected = true
- agreementButton.setImage(kImage(name: "icon_check"), for: UIControl.State.selected)
- agreementButton.setImage(kImage(name: "icon_uncheck"), for: UIControl.State.normal)
- return agreementButton
- }()
-
- private lazy var playerView: UIView = {
- let playerView = UIView()
- return playerView
- }()
-
- private lazy var player: AVPlayer = {
- //定义一个视频文件路径
- let filePath = Bundle.main.path(forResource: "login_video", ofType: "mp4")
- let videoURL = URL(fileURLWithPath: filePath!)
- //定义一个playerItem,并监听相关的通知
- let playerItem = AVPlayerItem(url: videoURL)
- NotificationCenter.default.addObserver(self,
- selector: #selector(playerDidFinishPlaying),
- name: NSNotification.Name.AVPlayerItemDidPlayToEndTime,
- object: playerItem)
- let player = AVPlayer(playerItem: playerItem)
- //设置大小和位置(全屏)
- let playerLayer = AVPlayerLayer(player: player)
- playerLayer.frame = self.view.bounds
- playerLayer.videoGravity = .resizeAspectFill
- //添加到界面上
- playerView.layer.addSublayer(playerLayer)
- return player
- }()
-
- @objc func playerDidFinishPlaying(notification:Notification) {
- player.seek(to: .zero, toleranceBefore: .zero, toleranceAfter: .zero) {[weak self] (finished) in
- self?.player.play()
- }
- }
-
- //第三方登录
- func tripartiteLogin(platformType:UMSocialPlatformType,loginType:LoginType) {
-
- if self.agreementButton.isSelected {
- UMManager.shared.loginGetUserInfo(platformType: platformType, currentViewController: self) {
- [weak self] (userModel) -> (Void) in
- let wxLoginModel = userModel
- SwiftMoyaNetWorkServiceUser.shared().userTripartiteRegisterTLoginApi(loginType:loginType,open_id: wxLoginModel.open_id, union_id: wxLoginModel.union_id, avatar: wxLoginModel.avatar, username: wxLoginModel.username, gender: wxLoginModel.gender, completion: {
- [weak self] (userModel) -> (Void) in
- let userModel = userModel as! UserModel
- if (userModel.mobile != nil && userModel.mobile != "" ) {
- UserModel.shared().setModel(model: userModel)
- RegisterLoginManager.registerLoginSuccessApi(vc: self)
- }else {
- if loginType == .qq {
- Mediator.push(RegisterLoginRouterModuleType.pushBindPhoneNumber(bindPhoneNumberVCType: .qqLogin, userModel: userModel))
- }
- if loginType == .weixin {
- Mediator.push(RegisterLoginRouterModuleType.pushBindPhoneNumber(bindPhoneNumberVCType: .weixinlogin, userModel: userModel))
- }
- }
- })
- }
- }else {
- SwiftProgressHUD.shared().showText("请您先同意用户协议")
- }
-
-
- }
- }
|