1

在我的应用程序中,我授予用户对 UIImagePickerController 的访问权限,允许他们拍照或从库中选择以保存到 DocumentDirectory 中的路径:

        //Obtaining Saving Path
    let path:NSArray = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
    let documentDirectory: AnyObject = path.objectAtIndex(0)
    let imagePath = documentDirectory.stringByAppendingPathComponent("Photo.png")

    //casting the image selected as a UIImage
    var chosenImage: UIImage = info[UIImagePickerControllerOriginalImage] as UIImage

    //writing it to the set imagePath
    UIImagePNGRepresentation(chosenImage).writeToFile(imagePath, atomically: true)

我的目标是访问已从另一个 ViewController 中的 WebView 中保存的文件,并运行一些 JS 以在页面完成加载时自动上传文件,而不是单击“选择文件”按钮并选择文件等.

这是我要调整值的元素。

<input type="file" name="field_153" id="field_153">

这就是我在 Web 视图完成加载时正在运行的内容:

func webViewDidFinishLoad(webView: UIWebView) {

//Retreive a UIImage object from disk
let path:NSArray = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
let documentDirectory: AnyObject = path.objectAtIndex(0)
let imagePath = documentDirectory.stringByAppendingPathComponent("Photo.png")
let savedPhoto: UIImage = UIImage(contentsOfFile: imagePath)!

....
let uploadPictureJS = "var inputFields = document.getElementById('field_153'); inputFields.value = '\(imagePath)';"
self.webView.stringByEvaluatingJavaScriptFromString(uploadPictureJS) }

我尝试过同时使用 imagePath 和 savedPhoto,但这显然不像向元素输入文本值那么简单。

使用JS可以做到这一点吗?或者有没有更简单的替代方法来实现这一点?

谢谢

4

0 回答 0