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