Swift 我是否可以通过编程方式将图像或文件上载到wkwebview输入字段?
我有一个web应用程序,用户可以在其中选择图像并上传,然后用它做一些事情。我正在构建一个iOS应用程序,在WKWebView中打开我的web应用程序。目前,用户可以选择图像并将其上传到iOS应用程序。但我想实现允许用户编辑图片的功能。我知道如何实现图片编辑,但我不确定是否可以通过编程方式将文件上载到WKWebView上的字段。我以前在Windows浏览器中使用过Html代码。在iOS中尝试后,它还可以从iOS中选择图像。您需要修改的是将数据上载到服务器Swift 我是否可以通过编程方式将图像或文件上载到wkwebview输入字段?,swift,xamarin.ios,wkwebview,Swift,Xamarin.ios,Wkwebview,我有一个web应用程序,用户可以在其中选择图像并上传,然后用它做一些事情。我正在构建一个iOS应用程序,在WKWebView中打开我的web应用程序。目前,用户可以选择图像并将其上传到iOS应用程序。但我想实现允许用户编辑图片的功能。我知道如何实现图片编辑,但我不确定是否可以通过编程方式将文件上载到WKWebView上的字段。我以前在Windows浏览器中使用过Html代码。在iOS中尝试后,它还可以从iOS中选择图像。您需要修改的是将数据上载到服务器 <!DOCTYPE html>
<!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>
嗨,是的。如果有问题可以在这里共享代码,您可以这样做。我在代码方面没有问题,我想知道WKWebview是否有这样的支持。如果你有一个链接或我如何做的一般想法,这将是非常有帮助的。我在WKWbeview文档或其他社区上找不到解决方案好的,现在没有示例代码,稍后if将在此处更新。感谢您抽出时间提供此解决方案。我想这会管用的。只是为了确保,我不能像正常的输入字段行为那样将文件设置为输入字段,但我能做的是上传到服务器。是吗?@Abdurakhmon嗨,将文件设置为输入字段的含义是什么,就像正常的输入字段行为一样,您可以解释更多关于正常输入的内容。我的意思是以编程方式将文件设置为字段。我所说的正常行为是指用户选择一个文件,并将该文件设置为“字段”。@Abdurakhmon如果您是指使用C代码将图像数据传输到wkwebview,这是可能的。您可以使用本机代码调用JavaScript。
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);