我有一个Web应用程序,用户可以在其中选择图像并上传并使用它进行处理。我正在构建一个iOS应用,该应用将在WKWebView
中打开我的Web应用。目前,用户可以选择图片并将其上传到iOS应用中。但是我想实现允许用户编辑图片的功能。我知道如何实现图片的编辑,但是我不确定是否可以通过编程方式将文件上传到<input/>
的WKWebView
字段。
我以前在Windows浏览器中使用过HTML代码。在iOS中尝试后,它也可以从iOS中选择图像。您需要修改的是将数据上传到服务器。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Upload Image</title>
<style type="text/css">
/*
css
*/
#fileimg {
width: 200px;
height: 200px;
border: 1px solid #eee;
}
.Btn {
width: 100px;
background: #4BCD61;
border: 0px;
}
</style>
<script type="text/javascript">
//JS
function fileClick() {
document.getElementById('file').click()
}//
function upCh(file) {
let img = document.getElementById('fileimg')
let formData = new FormData()
let imgUrl = file.files[0];
if (imgUrl) {
formData.append('file', imgUrl);
/*
up load to server .
*/
}
}
</script>
</head>
<body>
<input type="file" id="file" name="" onchange="upCh(this)" />
<br />
<img id="fileimg" src="" />
<br />
<button class="Btn" onclick="fileClick()">Upload Image</button>
</body>
</html>
如果要与Html交互,则可以使用invoke javascript method到Native。
var config = new WKWebViewConfiguration();
var wk = new WKWebView(UIScreen.MainScreen.Bounds, config);
var js = (NSString) "document.getElementById('foo').innerHTML = 'bar'";
WKJavascriptEvaluationResult handler = (NSObject result, NSError err) => {
if(err != null)
{
System.Console.WriteLine(err);
}
if(result != null)
{
System.Console.WriteLine(result);
}
};
wk.EvaluateJavaScript(js, handler);