2015-02-05 4 views
0

wkwebview와 자바 스크립트 브리지를 사용하여 공유 확장에 파일을 업로드하는 방법을 구현했습니다. 브릿지는 업로드를 알려주며 파트가 성공적으로 업로드되면 파일이 완전히 업로드 될 때까지 파일의 다음 부분을 시작합니다. 완벽하게 작동하지만 백그라운드에서이 작업을 수행하여 업로드 중에 공유 확장 창을 기다리지 않아도됩니다. 이렇게 백그라운드로 업로드 할 수 있습니까?자바 스크립트로 백그라운드에서 공유 확장 업로드

자바 스크립트 다리 스위프트 사이드 :

func userContentController(userContentController: WKUserContentController, didReceiveScriptMessage message: WKScriptMessage) { 
    if let messageBody:NSDictionary = message.body as? NSDictionary { 
     let key:String = messageBody["key"] as String 
     switch key { 
     case "startUpload": 
      fileUploader!.fileProductInstanceId = messageBody["fileProductInstanceId"] as? Int 
      fileUploader!.contextId = messageBody["contextId"] as? Int 
      fileUploader!.directoryId = messageBody["directoryId"] as? Int 
      fileUploader!.initUpload() 
     case "getNextFilePart": 
      fileUploader!.sendData() 
     case "fileUploadFinished": 
      self.myWebView!.evaluateJavaScript("App.UploadNextFile(\(fileUploader!.contextId!),\(fileUploader!.directoryId!))", 
       completionHandler: nil) 
     default: 
      println("unknown command") 
     } 
    } 

} 

답변

0

당신은 GCD를 사용하여 배경에 업로드 작업을 전달할 수 있습니다. XWebView을 사용하는 것이 좋습니다. 브리징 및 백그라운드 파견과 같은 모든 더러운 작업을 수행 할 수 있습니다.