Commit 4b5588a4 authored by pete谢兆麟's avatar pete谢兆麟

接口本地分享

parent 7f297b2a
...@@ -113,6 +113,8 @@ target 'galaxy' do ...@@ -113,6 +113,8 @@ target 'galaxy' do
pod 'QY_iOS_SDK', '9.9.2' pod 'QY_iOS_SDK', '9.9.2'
#阿里云日志 #阿里云日志
pod 'AliyunLogProducer', '4.3.3' pod 'AliyunLogProducer', '4.3.3'
#加密
pod 'xxtea', '1.0.2'
end end
......
...@@ -662,22 +662,31 @@ extension YHH5WebViewVC { ...@@ -662,22 +662,31 @@ extension YHH5WebViewVC {
} }
func savePicToLocal(_ data: String) { func savePicToLocal(_ data: String) {
func saveBase64ImageToPhotoLibrary(base64String: String) { // 解码 Base64 字符串为 Data
// 解码 Base64 字符串为 Data let base64String = data
guard let imageData = Data(base64Encoded: base64String) else { if let image = base64ToImage(base64String: base64String) {
printLog("无法解码 Base64 字符串") print("图片转换成功")
return
}
// 创建 UIImage
guard let image = UIImage(data: imageData) else {
printLog("无法创建 UIImage")
return
}
self.saveImage(image) self.saveImage(image)
} else {
print("图片转换失败")
} }
} }
// 将Base64字符串转换为Data对象
func base64ToData(base64String: String) -> Data? {
return Data(base64Encoded: base64String, options: .ignoreUnknownCharacters)
}
// 将Data对象转换为UIImage对象
func base64ToImage(base64String: String) -> UIImage? {
// 首先将Base64字符串转换为Data
guard let imageData = base64ToData(base64String: base64String) else {
return nil
}
// 然后使用Data初始化UIImage
return UIImage(data: imageData)
}
func saveImage(_ image: UIImage) { func saveImage(_ image: UIImage) {
// 确保应用有权访问相册 // 确保应用有权访问相册
PHPhotoLibrary.requestAuthorization { status in PHPhotoLibrary.requestAuthorization { status in
......
...@@ -554,4 +554,28 @@ extension YHJsApi { ...@@ -554,4 +554,28 @@ extension YHJsApi {
} }
} }
//调用本地分享
@objc func openShareView(_ dicData: String) {
DispatchQueue.main.async {
if let data = dicData.data(using: .utf8) {
do {
if let jsonObject = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] {
if !jsonObject.isEmpty {
let shareH5Title : String = jsonObject["ShareH5Title"] as? String ?? ""
let shareH5Describe : String = jsonObject["ShareH5Describe"] as? String ?? ""
let shareH5Url : String = jsonObject["ShareH5Url"] as? String ?? ""
let contentUrl : String = jsonObject["ContentUrl"] as? String ?? ""
YHShareAlertView.show(image: contentUrl, title: shareH5Title, subMessage: shareH5Describe, linkUrl: shareH5Url, isLive: false)
} else {
printLog("ddddd")
}
} else {
printLog("JSON字符串不是有效的字典格式")
}
} catch {
printLog("JSON解析错误: \(error)")
}
}
}
}
} }
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
import UIKit import UIKit
import SmartCodable import SmartCodable
import xxtea
class YHLoginViewModel: YHBaseViewModel { class YHLoginViewModel: YHBaseViewModel {
var userModel: YHUserModel? var userModel: YHUserModel?
...@@ -22,7 +23,7 @@ extension YHLoginViewModel { ...@@ -22,7 +23,7 @@ extension YHLoginViewModel {
//发送验证码 //发送验证码
func getLoginCode(_ phone: String, callBackBlock: @escaping (_ success: Bool,_ error:YHErrorModel?)->()) { func getLoginCode(_ phone: String, callBackBlock: @escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let params: [String : Any] = ["type": "Phone", let params: [String : Any] = ["type": "Phone",
"value": phone, "value": XXTEA.encryptString(toBase64String: phone, stringKey: "galaxyapps") ?? phone,
"extend":"register"] "extend":"register"]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.User.verifyCode let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.User.verifyCode
let _ = YHNetRequest.postRequest(url: strUrl, params: params) {[weak self] json, code in let _ = YHNetRequest.postRequest(url: strUrl, params: params) {[weak self] json, code in
......
...@@ -17,7 +17,7 @@ class YHAnalytics { ...@@ -17,7 +17,7 @@ class YHAnalytics {
#if DEBUG #if DEBUG
let options = SAConfigOptions.init(serverURL: YhConstant.SensorsAnalytics.urlForTest, launchOptions: launchOptions) let options = SAConfigOptions.init(serverURL: YhConstant.SensorsAnalytics.urlForTest, launchOptions: launchOptions)
//开启log //开启log
options.enableLog = true options.enableLog = false
SensorsAnalyticsSDK.sharedInstance()?.set(["evn" : "test"]) SensorsAnalyticsSDK.sharedInstance()?.set(["evn" : "test"])
#elseif TESTENV #elseif TESTENV
let options = SAConfigOptions.init(serverURL: YhConstant.SensorsAnalytics.urlForTest, launchOptions: launchOptions) let options = SAConfigOptions.init(serverURL: YhConstant.SensorsAnalytics.urlForTest, launchOptions: launchOptions)
......
...@@ -284,7 +284,7 @@ class YHAllApiName { ...@@ -284,7 +284,7 @@ class YHAllApiName {
//获取验证 //获取验证
struct User { struct User {
static let verifyCode = "cuser/user/verify-code" static let verifyCode = "cuser/user/v2/verify-code"
static let userInfo = "super-app/user/current-info" static let userInfo = "super-app/user/current-info"
} }
...@@ -311,7 +311,7 @@ class YHAllApiName { ...@@ -311,7 +311,7 @@ class YHAllApiName {
static let uploadApi = "oss/upload/storage" static let uploadApi = "oss/upload/storage"
static let getPublicApi = "oss/storage/convertToPublicURL" static let getPublicApi = "oss/storage/convertToPublicURL"
static let getPublicUrlsApi = "oss/storage/batchConvertToPublicURL" static let getPublicUrlsApi = "oss/storage/batchConvertToPublicURL"
static let getID = "ossv2/sts/auth" static let getID = "oss/v2/sts/auth"
} }
struct OCR { struct OCR {
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
import UIKit import UIKit
import AliyunOSSiOS import AliyunOSSiOS
import SmartCodable import SmartCodable
import xxtea
struct YHOSSModel: SmartCodable { struct YHOSSModel: SmartCodable {
var bucket: String = "" var bucket: String = ""
...@@ -18,6 +19,15 @@ struct YHOSSModel: SmartCodable { ...@@ -18,6 +19,15 @@ struct YHOSSModel: SmartCodable {
var accessKeySecret: String = "" var accessKeySecret: String = ""
var endpoint: String = "" var endpoint: String = ""
var securityToken: String = "" var securityToken: String = ""
var id: String {
return XXTEA.decryptBase64String(to: accessKeyId, stringKey: "galaxyapps")
}
var secret: String {
return XXTEA.decryptBase64String(to: accessKeySecret, stringKey: "galaxyapps")
}
} }
class YHOSSManager: NSObject, URLSessionDelegate { class YHOSSManager: NSObject, URLSessionDelegate {
...@@ -63,7 +73,7 @@ class YHOSSManager: NSObject, URLSessionDelegate { ...@@ -63,7 +73,7 @@ class YHOSSManager: NSObject, URLSessionDelegate {
} }
print(resultModel.toJSONString() as Any) print(resultModel.toJSONString() as Any)
self.model = resultModel self.model = resultModel
self.mProvider = OSSStsTokenCredentialProvider(accessKeyId: self.model.accessKeyId, secretKeyId: self.model.accessKeySecret, securityToken: self.model.securityToken) self.mProvider = OSSStsTokenCredentialProvider(accessKeyId: self.model.id, secretKeyId: self.model.secret, securityToken: self.model.securityToken)
self.mClient = OSSClient(endpoint: self.model.endpoint, credentialProvider: self.mProvider) self.mClient = OSSClient(endpoint: self.model.endpoint, credentialProvider: self.mProvider)
if let block = completionHandler { if let block = completionHandler {
block() block()
...@@ -79,7 +89,7 @@ class YHOSSManager: NSObject, URLSessionDelegate { ...@@ -79,7 +89,7 @@ class YHOSSManager: NSObject, URLSessionDelegate {
return return
} }
self.publicModel = resultModel self.publicModel = resultModel
self.publicProvider = OSSStsTokenCredentialProvider(accessKeyId: self.publicModel.accessKeyId, secretKeyId: self.publicModel.accessKeySecret, securityToken: self.publicModel.securityToken) self.publicProvider = OSSStsTokenCredentialProvider(accessKeyId: self.publicModel.id, secretKeyId: self.publicModel.secret, securityToken: self.publicModel.securityToken)
self.publicClient = OSSClient(endpoint: self.publicModel.endpoint, credentialProvider: self.publicProvider) self.publicClient = OSSClient(endpoint: self.publicModel.endpoint, credentialProvider: self.publicProvider)
} failBlock: { err in } failBlock: { err in
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment