Как загрузить изображение из фотогалереи или камеры в WebView в iOS - PullRequest
0 голосов
/ 30 октября 2018

Мое приложение имеет WebView. В этом WebView я хочу загрузить изображение из фотогалереи или камеры.

Я сделал это для Android, используя WebChromeClient. Я понятия не имею, как это сделать в iOS с помощью Objective-C.

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Предполагая, что ваш код загрузки в JavaScript, вы можете добавить следующее в ваш HTML

<label for="fileupload">Upload</label>
<input id="fileupload" accept="image/*" style="display:none;" type="file">

Добавьте событие изменения в js в поле ввода и загрузите свой файл. Вот код в JQuery

$("#fileupload").on("change", function(value){
    var value = $("#fileupload").get(0).files[0]
    // clear file so if file is loaded a second time the change event is still triggered
    $("#fileupload").val('')
    // your code to upload the file
    uploadFile(value)
})

Единственное, что вам нужно сделать, это добавить флаги «Конфиденциальность - Описание использования камеры» и «Конфиденциальность - Описание использования библиотеки фотографий» в файл Info.plist вашего приложения, чтобы разрешить вашему приложению доступ к камере и фотобиблиотеке .

0 голосов
/ 30 октября 2018

Пока пользователь нажимает кнопку загрузки изображения в веб-просмотре, из веб-просмотра отправьте ScriptMessage на iOS, а в iOS перехватите это сообщение на WKScriptMessageHandler из WebKit внутри,

userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage)

Здесь message содержит сообщение Script из веб-просмотра в message.body. Затем откройте камеру или галерею в соответствии с сообщением и сделайте фотографию как собственное приложение в imagepickerDelegate и сохраните в соответствующем API. Вы также можете обновить веб-представление после сохранения.

Здесь является SO сообщением для более сложного ответа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...