Pārlūkot izejas kodu

Merge branch 'feature/nanxinlin' into develop

南鑫林 6 gadi atpakaļ
vecāks
revīzija
4d62074172

+ 12 - 0
RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj

@@ -157,6 +157,7 @@
 		A738D202225AD6AD00EEE860 /* Extension+UICollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A738D201225AD6AD00EEE860 /* Extension+UICollectionView.swift */; };
 		A738D205225AF90D00EEE860 /* WeChatpayOrderModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A738D204225AF90D00EEE860 /* WeChatpayOrderModel.swift */; };
 		A738D66F225D9BD900EEE860 /* UMLoginModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A738D66E225D9BD900EEE860 /* UMLoginModel.swift */; };
+		A73911AD229CD62F0033177E /* AlamofireReachabilityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A73911AC229CD62F0033177E /* AlamofireReachabilityManager.swift */; };
 		A73D7C682268A032002A4CE3 /* SwiftyStarRatingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A73D7C672268A032002A4CE3 /* SwiftyStarRatingView.swift */; };
 		A75414FD224B5F28002480B5 /* MobileLoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A75414FB224B5F28002480B5 /* MobileLoginViewController.swift */; };
 		A7541502224C5ECB002480B5 /* BaiduMapManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7541501224C5ECA002480B5 /* BaiduMapManager.swift */; };
@@ -544,6 +545,7 @@
 		A738D201225AD6AD00EEE860 /* Extension+UICollectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Extension+UICollectionView.swift"; sourceTree = "<group>"; };
 		A738D204225AF90D00EEE860 /* WeChatpayOrderModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WeChatpayOrderModel.swift; sourceTree = "<group>"; };
 		A738D66E225D9BD900EEE860 /* UMLoginModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UMLoginModel.swift; sourceTree = "<group>"; };
+		A73911AC229CD62F0033177E /* AlamofireReachabilityManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlamofireReachabilityManager.swift; sourceTree = "<group>"; };
 		A73D7C672268A032002A4CE3 /* SwiftyStarRatingView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwiftyStarRatingView.swift; sourceTree = "<group>"; };
 		A75414FB224B5F28002480B5 /* MobileLoginViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MobileLoginViewController.swift; sourceTree = "<group>"; };
 		A7541501224C5ECA002480B5 /* BaiduMapManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaiduMapManager.swift; sourceTree = "<group>"; };
@@ -1486,6 +1488,7 @@
 		A72A725422321B9400B21995 /* Manager */ = {
 			isa = PBXGroup;
 			children = (
+				A73911AB229CD6080033177E /* AlamofireReachabilityManager */,
 				A7778CA52243A03400C7C47A /* IQKeyboardManagerSwiftManager */,
 				A72A730522321F1D00B21995 /* PayManager */,
 				A72A726122321DBD00B21995 /* MapManager */,
@@ -1709,6 +1712,14 @@
 			path = Model;
 			sourceTree = "<group>";
 		};
+		A73911AB229CD6080033177E /* AlamofireReachabilityManager */ = {
+			isa = PBXGroup;
+			children = (
+				A73911AC229CD62F0033177E /* AlamofireReachabilityManager.swift */,
+			);
+			path = AlamofireReachabilityManager;
+			sourceTree = "<group>";
+		};
 		A73D7C662268A032002A4CE3 /* SwiftyStarRatingView */ = {
 			isa = PBXGroup;
 			children = (
@@ -3346,6 +3357,7 @@
 				A71AA51C227219EF008FF1A5 /* EditExpressAddressView.swift in Sources */,
 				BDAA40FB228E9CC300CF841D /* OrderApplyRefundNoteInfoCell.swift in Sources */,
 				A7CC751122715AE3003C4F38 /* MessageDetailesTimeView.swift in Sources */,
+				A73911AD229CD62F0033177E /* AlamofireReachabilityManager.swift in Sources */,
 				A7BB684F2268DCEC00AB07A2 /* SelfRecommendationViewController.swift in Sources */,
 				A7B4E7352281907A0012914A /* CMSModel.swift in Sources */,
 				A72A72BE22321DE000B21995 /* Extension+RxTimer.swift in Sources */,

+ 1 - 1
RainbowPlanet/RainbowPlanet/AppDelegate/AppDelegate+Window.swift

@@ -23,6 +23,7 @@ extension AppDelegate {
             /// 设置全局的navigation
             self?.setNavBarAppearence()
         }
+        // 获取默认配置
         if (UserModel.shared().getModel()?.token) != nil && (DeliveryMethodTypeModel.shared().getModel()?.deliveryMethodType) != nil {
             /// 设置Tabbar
             /// 刷新token
@@ -39,7 +40,6 @@ extension AppDelegate {
 
         /// 引导页
         setGuidePageView()
-        
     }
     
     /// 设置Tabbar

+ 1 - 3
RainbowPlanet/RainbowPlanet/AppDelegate/AppDelegate.swift

@@ -13,9 +13,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
 
     var window: UIWindow?
 
-
     func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
-       
         //初始化窗口
         initWindow()
         //初始化友盟
@@ -23,7 +21,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
         DispatchQueue.global(qos: .default).async {
             //初始化百度地图
             BaiduMapManager.shared().initBaiduMap()
-//            //初始化键盘
+            //初始化键盘
             IQKeyboardManagerSwiftManager.shared().initIQKeyboardManagerSwift()
         }
     

+ 77 - 0
RainbowPlanet/RainbowPlanet/Manager/AlamofireReachabilityManager/AlamofireReachabilityManager.swift

@@ -0,0 +1,77 @@
+//
+//  ReachabilitySwiftManager.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/5/28.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+import Alamofire
+
+class AlamofireReachabilityManager: NSObject {
+    
+    /// 单列
+    static let shared : AlamofireReachabilityManager = AlamofireReachabilityManager()
+    
+    /// 初始化对象
+    private var reachabilityManager = NetworkReachabilityManager(host: kApiDataPrefix())!
+    private var manager = NetworkReachabilityManager()!
+
+    
+    /// 网络监听
+    public func reachability() {
+        reachabilityManager.listener = { status in
+            if status == NetworkReachabilityManager.NetworkReachabilityStatus.notReachable {
+                NXLLog("当前无网络")
+            }
+            if status == NetworkReachabilityManager.NetworkReachabilityStatus.unknown {
+                NXLLog("当前网络环境为:未知网络")
+            }
+            if status == NetworkReachabilityManager.NetworkReachabilityStatus.reachable(.ethernetOrWiFi) {
+                NXLLog("当前网络环境为:无线网络")
+            }
+            if status == NetworkReachabilityManager.NetworkReachabilityStatus.reachable(.wwan) {
+                NXLLog("当前网络环境为:无线广域网")
+            }
+        }
+        startListening()
+    }
+    
+    
+    /// 开始监听
+    private func startListening() {
+        reachabilityManager.startListening()
+    }
+    
+    /// 结束监听
+    private func stopListening() {
+        reachabilityManager.stopListening()
+    }
+    
+    /// 判断是否连接网络
+    public func isNetworkConnect() -> Bool {
+        if manager.isReachable {
+            return true
+        }else {
+            AlamofireReachabilityManager.shared.alert()
+            return false
+        }
+        
+    }
+    
+    /// 弹框跳转设置页面
+    public func alert(){
+        AlertSheetView.alert(title: "网络连接失败", detailTitle: "检测到网络权限可能未开启\n您可以在\"设置>无线数据>WLAN或WLAN与蜂窝移动网\"开启一下吧", cancelTitle: "取消", sureTitle: "设置", cancelBlock:nil, confirmBlock: { (popupView, index, str) in
+            DispatchQueue.main.async(execute: {() -> Void in
+                let url = URL(string: UIApplication.openSettingsURLString)
+                if let url = url, UIApplication.shared.canOpenURL(url) {            if #available(iOS 10.0, *) {
+                    UIApplication.shared.open(url, options: [:],completionHandler: {(success) in})
+                }else {
+                    UIApplication.shared.openURL(url)
+                    }
+                }
+            })
+        })
+    }
+}

+ 4 - 1
RainbowPlanet/RainbowPlanet/Manager/UMManager/UMManager.swift

@@ -313,7 +313,10 @@ extension UMManager {
     ///
     /// - Parameter platformType: 平台
     func loginGetUserInfo(platformType: UMSocialPlatformType,callBack: @escaping (UMLoginModel) -> (Void)) {
-
+        
+        if !AlamofireReachabilityManager.shared.isNetworkConnect() {
+            return
+        }
         let isInstall = UMSocialManager.default()?.isInstall(platformType)
         if isInstall!  { //验证
             UMSocialManager.default().getUserInfo(with: platformType, currentViewController: nil) { result, error in

+ 0 - 2
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceApi/SwiftMoyaServiceConfig/SwiftMoyaNetWorkServiceConfig.swift

@@ -22,8 +22,6 @@ class SwiftMoyaNetWorkServiceConfig: NSObject {
     /// 数据回调
     typealias apiCallBack = (Any) -> (Void)
     
-
-    
     /// 前端config配置
     ///
     /// - Parameter completion: 回调

+ 2 - 2
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceManger/SwiftMoyaNetWorkManager/ApiMacro.swift

@@ -8,8 +8,8 @@
 
 import Foundation
 
-let kDevelopSever = false
-let kTestSever = true
+let kDevelopSever = true
+let kTestSever = false
 let kProductSever = false
 
 

+ 17 - 12
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceManger/SwiftMoyaNetWorkManager/SwiftMoyaNetWorkManager.swift

@@ -33,9 +33,7 @@ private let myEndpointClosure = { (target: MultiTarget) -> Endpoint in
         method: target.method,
         task: task,
         httpHeaderFields: target.headers
-    )
-    requestTimeOut = 10//每次请求都会调用endpointClosure 到这里设置超时时长 也可单独每个接口设置
-    
+    )    
     return endpoint
 }
 
@@ -84,8 +82,12 @@ private let provider = MoyaProvider<MultiTarget>(endpointClosure: myEndpointClos
 /// 用get方法是因为这样才会在获取isNetworkConnect时实时判断网络链接请求,如有更好的方法可以fork
 private var isNetworkConnect: Bool {
     get{
-        let network = NetworkReachabilityManager()
-        return network?.isReachable ?? true //无返回就默认网络已连接
+        if !AlamofireReachabilityManager.shared.isNetworkConnect() {
+            SwiftProgressHUD.shared().hide()
+            return false
+        }else {
+            return true
+        }
     }
 }
 
@@ -129,9 +131,12 @@ public class SwiftMoyaNetWorkManager: NSObject {
     func request<T: BaseMappable>(_ type: T.Type ,target: MultiTarget,isCustomAlert:Bool = false,completion: @escaping successCallTBack) -> Void {
         //判断是否链接网络
         if !isNetworkConnect{
-             SwiftProgressHUD.shared().showError("网络链接失败,请检查网络")
+            if let falseCallback = self.falseCallback  {
+                falseCallback()
+            }
             return
         }
+        
 
         provider.rx
             .request(target)
@@ -167,7 +172,6 @@ public class SwiftMoyaNetWorkManager: NSObject {
     func requestArray<T: BaseMappable>(_ type: T.Type ,target: MultiTarget,isCustomAlert:Bool = false,completion: @escaping successCallArrayTback) -> Void {
         //判断是否链接网络
         if !isNetworkConnect{
-            SwiftProgressHUD.shared().showError("网络链接失败,请检查网络")
             if let falseCallback = self.falseCallback  {
                 falseCallback()
             }
@@ -254,7 +258,6 @@ public class SwiftMoyaNetWorkManager: NSObject {
     func request(target: MultiTarget,isCustomAlert:Bool = false,completion: @escaping successCallback) -> Void {
         //判断是否链接网络
         if !isNetworkConnect{
-            SwiftProgressHUD.shared().showText("网络链接失败,请检查网络")
             if let falseCallback = self.falseCallback  {
                 falseCallback()
             }
@@ -286,8 +289,9 @@ public class SwiftMoyaNetWorkManager: NSObject {
     func requestValue(target: MultiTarget,completion: @escaping successCallback) -> Void {
         //判断是否链接网络
         if !isNetworkConnect{
-            SwiftProgressHUD.shared().showText("网络链接失败,请检查网络")
-            
+            if let falseCallback = self.falseCallback  {
+                falseCallback()
+            }
             return
         }
         
@@ -316,8 +320,9 @@ public class SwiftMoyaNetWorkManager: NSObject {
     func requestArray(target: MultiTarget,completion: @escaping successCallArrayback) -> Void {
         //判断是否链接网络
         if !isNetworkConnect{
-            SwiftProgressHUD.shared().showText("网络链接失败,请检查网络")
-            
+            if let falseCallback = self.falseCallback  {
+                falseCallback()
+            }
             return
         }