如何在iOS的WebView中从照片库或相机上传图像

时间:2018-10-30 08:04:04

标签: ios objective-c xcode uiwebview

我的应用程序具有WebView。在此WebView中,我要从照片库或相机上传图像。

我是使用WebChromeClient在Android上完成的。我不知道如何在iOS中使用Objective-C做到这一点。

2 个答案:

答案 0 :(得分:0)

当用户点击webview上的“上传图片”按钮时,从webview发送ScriptMessage到iOS,然后在iOS上在WKScriptMessageHandler的{​​{1}}内捕获该消息,

WebKit

此处userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) 包含message中来自webview的脚本消息。然后根据消息打开相机或图库,并在message.body中将照片作为本机应用程序保存到适当的API中。保存后,您也可以刷新Web视图。

Here是SO帖子,提供了更详尽的答案

答案 1 :(得分:0)

假设您的上传代码使用的是JavaScript,则可以将以下内容添加到HTML中

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

将js中的change事件添加到输入字段并上传文件。这是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文件中添加“隐私-相机使用说明”和“隐私-照片库使用说明”标志,以使您的应用程序可以访问相机和照相馆