Skip to content

Instantly share code, notes, and snippets.

View pay-napster-x's full-sized avatar
🎯
Focusing

Napster.x pay-napster-x

🎯
Focusing
View GitHub Profile
@IBAction private func uploadAction() {
dismissKeyboard()
guard !((titleTextField.text?.isEmpty) ?? true) else {
Toast(text: "제목을 입력해주세요 :)").show()
return
}
showPencilUsingAllowPopup(action: { [weak self] in
if Reachability.checkWiFi() {
//1.
@pay-napster-x
pay-napster-x / DispatchQueueExample.swift
Created April 23, 2020 04:43
DispatchQueue Example
let label = "com.myApp.networking"
let queue = DispatchQueue(label: label, attributes: .concurrent)
@pay-napster-x
pay-napster-x / DispatchQueueConcurrent.swift
Created April 23, 2020 05:04
DispatchQueue with concurrency
private let uploadQueue = DispatchQueue(label: "com.upload.networking",
qos: .utility,
attributes: .concurrent)
//...
if Reachability.checkWiFi() {
DispatchQueue.main.async { self.appendUploadingView() }
self.uploadQueue.async { self.uploadViewModel.inputs.uploadAttachment() }
@pay-napster-x
pay-napster-x / WKWebView.swift
Created June 2, 2020 02:25
WKWebView Configure.
private func configWebView() {
guard webView == nil else { return }
let config = WKWebViewConfiguration()
config.userContentController.add(WebKitLeakAvoider(delegate: self), name: CashfeedWebUtil.JavaScriptMessage.getPost)
config.userContentController.add(WebKitLeakAvoider(delegate: self), name: CashfeedWebUtil.JavaScriptMessage.getUserInfo)
config.userContentController.add(WebKitLeakAvoider(delegate: self), name: CashfeedWebUtil.JavaScriptMessage.getDeviceInfo)
config.setURLSchemeHandler(UploadWKSchemeHandler(), forURLScheme: PreviewViewModel.uploadURLScheme)
config.allowsInlineMediaPlayback = true
config.mediaTypesRequiringUserActionForPlayback = .audio
import Foundation
import WebKit
import Photos
import RxSwift
class UploadWKSchemeHandler: NSObject, WKURLSchemeHandler {
private var imageMime = "image/jpeg"
private var textMime = "text/plain"
private var disposeBag = DisposeBag()
@pay-napster-x
pay-napster-x / UploadWKHandlerInnerMethod.swift
Created June 2, 2020 04:07
UploadWKHandlerInnerMethod.swift
func webView(_ webView: WKWebView, start urlSchemeTask: WKURLSchemeTask) {
guard let url = urlSchemeTask.request.url else { return }
guard let queryItem = URLComponents(url: url, resolvingAgainstBaseURL: true)?.queryItems?.first else { return }
guard let value = queryItem.value else { return }
if queryItem.name == PreviewViewModel.imageQueryName {
makeImageResponse(url: url, identifier: value, urlSchemeTask: urlSchemeTask)
}
if queryItem.name == PreviewViewModel.textQueryName {