123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- //
- // RegisterLoginViewController.swift
- // RainbowPlanet
- //
- // Created by 南鑫林 on 2019/3/22.
- // Copyright © 2019 南鑫林. All rights reserved.
- //
- import UIKit
- import SwiftyMediator
- import SwiftyJSON
- class RegisterLoginViewController: BaseViewController {
-
- deinit {
- NotificationCenter.default.removeObserver(self)
- }
-
- override func viewWillDisappear(_ animated: Bool) {
- super.viewDidDisappear(animated)
- player.pause()
- }
-
-
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewDidDisappear(animated)
- player.play()
- }
- 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.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(weixinLoginButton.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(-40)
- make.centerX.equalToSuperview().offset(-30)
- }
- QQLoginButton.snp.makeConstraints { (make) in
- make.bottom.equalTo(-40)
- make.centerX.equalToSuperview().offset(30)
- }
-
-
- }
-
- override func setupData() {
- navigationBar.onClickLeftButton = {
- [weak self] in
- self?.navigationController?.dismiss(animated: true, completion: nil)
- }
-
- //一键登录
- oneBuiltLoginButton.rx.tap.subscribe(onNext: { [weak self] in
-
- ATAuthSDKManager.oneBuiltLogin(vc:self!)
-
- }).disposed(by: disposeBag)
-
- // 手机验证码或密码登录
- mobileLoginButton.rx.tap.subscribe(onNext: { [weak self] in
- self?.navigationController?.pushViewController(MobileLoginViewController(), animated: true)
- }).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)
- }
-
- 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 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) {
-
- UMManager.shared.loginGetUserInfo(platformType: platformType) { (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 {
- Mediator.push(RegisterLoginRouterModuleType.pushBindPhoneNumber(bindPhoneNumberVCType: .weixinlogin, userModel: userModel))
- }
- })
- }
- }
- }
|