我可以通过编程方式将图像或文件上传到wkwebview输入字段吗?

问题描述 投票:0回答:1

我有一个Web应用程序,用户可以在其中选择图像并上传并使用它进行处理。我正在构建一个iOS应用,该应用将在WKWebView中打开我的Web应用。目前,用户可以选择图片并将其上传到iOS应用中。但是我想实现允许用户编辑图片的功能。我知道如何实现图片的编辑,但是我不确定是否可以通过编程方式将文件上传到<input/>WKWebView字段。

swift xamarin.ios wkwebview
1个回答
1
投票

我以前在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>

enter image description here

如果要与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);
© www.soinside.com 2019 - 2024. All rights reserved.