用户没有获取到权限的情况下弹窗提 示重新获取

This commit is contained in:
DDIsFriend
2023-11-17 17:59:05 +08:00
parent 59a11d6250
commit cfd5d93c71
7 changed files with 237 additions and 60 deletions

View File

@@ -1151,7 +1151,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 4.0.1;
MARKETING_VERSION = 4.0.2;
PRODUCT_BUNDLE_IDENTIFIER = com.sino.supplier;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -1368,7 +1368,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 4.0.1;
MARKETING_VERSION = 4.0.2;
PRODUCT_BUNDLE_IDENTIFIER = com.sino.supplier;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -1425,7 +1425,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 4.0.1;
MARKETING_VERSION = 4.0.2;
PRODUCT_BUNDLE_IDENTIFIER = com.sino.supplier;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";

View File

@@ -3579,8 +3579,8 @@
filePath = "OrderScheduling/Global/User/UserPermission.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "32"
endingLineNumber = "32"
startingLineNumber = "37"
endingLineNumber = "37"
landmarkName = "init()"
landmarkType = "7">
</BreakpointContent>
@@ -4845,5 +4845,101 @@
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "DD1381E7-616D-4126-9D53-127EE8F3C58D"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "OrderScheduling/Global/User/UserPermission.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "45"
endingLineNumber = "45"
landmarkName = "init()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "CFD576AC-73E3-415B-A980-0665A6FECA93"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Pods/DDNetworkingOfAlamofireKit_Private/DDNetworkingOfAlamofireKit_Private/Classes/DDAF.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "35"
endingLineNumber = "35"
landmarkName = "post(urlString:parameters:encoding:headers:responseType:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "A9FCC6E5-032F-4920-BD1A-EE1CA080F8C3"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "OrderScheduling/Global/User/UserPermission.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "118"
endingLineNumber = "118"
landmarkName = "init()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "01151435-003A-46C9-9FE1-43550ED213F5"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "OrderScheduling/Global/User/UserPermission.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "36"
endingLineNumber = "36"
landmarkName = "init()"
landmarkType = "7">
<Locations>
<Location
uuid = "01151435-003A-46C9-9FE1-43550ED213F5 - 57f4233fc3fbbbf9"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "OrderScheduling.UserPermission.init() -&gt; OrderScheduling.UserPermission"
moduleName = "OrderScheduling"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/zd/Desktop/%E4%B8%AD%E9%81%93%E6%95%91%E6%8F%B4/OrderScheduling/OrderScheduling/Global/User/UserPermission.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "36"
endingLineNumber = "36"
offsetFromSymbolStart = "828">
</Location>
<Location
uuid = "01151435-003A-46C9-9FE1-43550ED213F5 - f19df26092a59558"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "closure #2 (Swift.Optional&lt;Any&gt;, Swift.Bool) -&gt; RxSwift.PrimitiveSequence&lt;RxSwift.SingleTrait, Swift.Optional&lt;OrderScheduling.ResponseModel&lt;Swift.Array&lt;Swift.String&gt;&gt;&gt;&gt; in OrderScheduling.UserPermission.init() -&gt; OrderScheduling.UserPermission"
moduleName = "OrderScheduling"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/zd/Desktop/%E4%B8%AD%E9%81%93%E6%95%91%E6%8F%B4/OrderScheduling/OrderScheduling/Global/User/UserPermission.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "37"
endingLineNumber = "37"
offsetFromSymbolStart = "40">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
</Bucket>

View File

@@ -362,6 +362,50 @@ open class Entry {
SwiftEntryKit.display(entry: view, using: attributes)
}
func showUserPermissionsEntry(view:UIView,name:String? = nil) {
var attributes = EKAttributes()
attributes = .centerFloat
attributes.name = name
attributes.precedence = .override(priority: .normal, dropEnqueuedEntries: false)
attributes.displayMode = .inferred
attributes.displayDuration = .infinity
attributes.screenBackground = .color(color: .clear)
attributes.entryBackground = .color(color: .white)
attributes.screenInteraction = .absorbTouches
attributes.entryInteraction = .absorbTouches
attributes.scroll = .disabled
attributes.entranceAnimation = .init(
translate: .init(
duration: 0.25,
spring: .init(damping: 1, initialVelocity: 0)
)
)
attributes.exitAnimation = .init(
translate: .init(duration: 0.25)
)
attributes.popBehavior = .animated(
animation: .init(
translate: .init(duration: 0.25)
)
)
attributes.shadow = .active(
with: .init(
color: .black,
opacity: 0.3,
radius: 6
)
)
attributes.positionConstraints.size = .init(
width: .constant(value: auto(280)),
height: .constant(value: auto(130))
)
attributes.positionConstraints.verticalOffset = 0
attributes.positionConstraints.safeArea = .overridden
attributes.positionConstraints.rotation.isEnabled = false
attributes.statusBar = .light
SwiftEntryKit.display(entry: view, using: attributes)
}
public func isCurrentlyDisplaying(entryNamed name: String? = nil) -> Bool {
return SwiftEntryKit.isCurrentlyDisplaying(entryNamed: name)
}

View File

@@ -25,13 +25,24 @@ open class UserPermission {
public var canSupplierRemarkBtn : Bool = false
public var canSupplierAuditEditCostBtn : Bool = false
public var canSupplierAuditUploadPhotoBtn : Bool = false
lazy private var alert = CommonAlertView()
init() {
Observable.combineLatest(relay, USER.refreshTokenSub)
.observe(on: MainScheduler.instance)
.do(onNext: { (_,_) in
UIApplication.shared.dd_keyWindow.rootViewController?.view.dd_showHUD()
})
.flatMapLatest { (_,_) in
return RQ.userOperationPermissions()
}
.observe(on: MainScheduler.instance)
.do(onNext: { _ in
UIApplication.shared.dd_keyWindow.rootViewController?.view.dd_hideHUD()
})
.observe(on: MainScheduler.instance)
.subscribe(onNext: {[weak self] response in
if response?.success == true {
self?.canRejectDispatchHandle = false
if response?.data?.contains(where: { value in
value == UserOperationPermissionsDataModel.DataEnum.rejectDispatchHandle.rawValue
@@ -89,6 +100,28 @@ open class UserPermission {
}
self?.userPermissionRelay.accept(response?.data)
}else{
if let alert = self?.alert {
alert.contentLabel.text = notObtainUserPermissions
ENTRY.showUserPermissionsEntry(view: alert,name: notObtainUserPermissionsEntry)
}
}
})
.disposed(by: disposeBag)
alert.sureButton.rx.tap
.observe(on: MainScheduler.instance)
.subscribe(onNext: {[weak self] _ in
ENTRY.dismiss(name: notObtainUserPermissionsEntry) {[weak self] in
self?.relay.accept(nil)
}
})
.disposed(by: disposeBag)
alert.cancelButton.rx.tap
.observe(on: MainScheduler.instance)
.subscribe(onNext: { _ in
exit(0)
})
.disposed(by: disposeBag)
}

View File

@@ -22,3 +22,5 @@ public let acceptOrderViewEntry = "acceptOrderViewEntry"
public let pushNotiCommonViewEntry = "pushNotiCommonViewEntry"
public let vehicleLogoutEntry = "vehicleLogoutEntry"
public let notObtainUserPermissionsEntry = "notObtainPermissionsEntry"

View File

@@ -24,3 +24,5 @@ public let dispatchOrderInputLicense = "请输入救援车车牌"
public let dispatchOrderSuccess = "派单成功"
public let isTheNewestVserion = "已是最新版本"
public let notObtainUserPermissions = "未获取到账号权限信息(影响接单派单),点击确认重新获取权限(点击取消将会退出应用)。"