使用JavaScript在后台分享扩展上传

问题描述:

我实现了一种使用wkwebview和javascript桥上传共享扩展中的文件的方式。桥接器上传并且如果部分成功上传,则启动文件的下一部分,直到文件完整上传。 这可以很好地工作,但我想在后台执行此任务,因此用户在上传过程中不必在共享扩展窗口内等待。 如何获得像这样的背景上传?使用JavaScript在后台分享扩展上传

的Javascript桥斯威夫特方:

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") 
     } 
    } 

} 

您可以通过使用GCD派遣上传的工作背景。我建议你使用XWebView。它可以为你做所有脏东西,比如桥接和后台调度。