68 lines
2.2 KiB
Swift
68 lines
2.2 KiB
Swift
//
|
|
// SPWebViewController+ScriptMessage.swift
|
|
// Thimra
|
|
//
|
|
// Created by Overseas on 2025/4/24.
|
|
//
|
|
|
|
import UIKit
|
|
import WebKit
|
|
|
|
typealias SPWebViewMessageName = String
|
|
|
|
///APP交互
|
|
let WebMessageAPP: SPWebViewMessageName = "js2app"
|
|
///打开反馈列表
|
|
let WebMessageOpenFeedbackList: SPWebViewMessageName = "openFeedbackList"
|
|
///打开反馈详情
|
|
let WebMessageOpenFeedbackDetail: SPWebViewMessageName = "openFeedbackDetail"
|
|
///打开相册
|
|
let WebMessageOpenPhotoPicker: SPWebViewMessageName = "openPhotoPicker"
|
|
|
|
|
|
extension SPWebViewController {
|
|
|
|
func _webViewUserContentController(didReceive message: WKScriptMessage) {
|
|
let name = message.name
|
|
let body = message.body
|
|
|
|
spLog(message: body)
|
|
|
|
if name == WebMessageOpenFeedbackList {
|
|
let vc = SPCampaignWebViewController()
|
|
vc.urlStr = SPFeedBackListWebUrl
|
|
self.navigationController?.pushViewController(vc, animated: true)
|
|
|
|
} else if name == WebMessageOpenFeedbackDetail {
|
|
guard let body = message.body as? [String : Any] else { return }
|
|
guard let id = body["id"] as? Int else { return }
|
|
|
|
let vc = SPCampaignWebViewController()
|
|
vc.id = "\(id)"
|
|
vc.urlStr = SPFeedBackDetailWebUrl
|
|
self.navigationController?.pushViewController(vc, animated: true)
|
|
|
|
} else if name == WebMessageOpenPhotoPicker {
|
|
let vc = SPImagePickerManager.createImagePicker(delegate: self)
|
|
self.present(vc, animated: true)
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
//MARK: -------------- TZImagePickerControllerDelegate --------------
|
|
extension SPWebViewController: TZImagePickerControllerDelegate {
|
|
|
|
func imagePickerController(_ picker: TZImagePickerController!, didFinishPickingPhotos photos: [UIImage]!, sourceAssets assets: [Any]!, isSelectOriginalPhoto: Bool) {
|
|
guard let image = photos.first else { return }
|
|
guard let imageData = image.jpegData(compressionQuality: 0.8) else { return }
|
|
let imageDataStr = imageData.base64EncodedString(options: .endLineWithCarriageReturn)
|
|
|
|
let js = "uploadConvertImage('\(imageDataStr)')"
|
|
self.webView.evaluateJavaScript(js)
|
|
|
|
}
|
|
|
|
}
|