自从过去几天以来,我一直在努力从WebView上传文件,但没有任何进展.我用谷歌搜索并实现了所有建议的解决方案,但都没有,例如:此处建议的解决方案,等等.
问题:我有一个带有以下代码的HTML页面来上传文件.它在Firefox等桌面浏览器和模拟器/ AVD的内置浏览器中工作正常,当我点击元素呈现的"浏览..."按钮时,浏览器会打开一个对话框,我可以在其中选择要上传的文件.
但是,在android 3.0模拟器/ AVD中,当我点击"选择文件"时,没有任何反应,没有打开文件对话框!
<form method="POST" enctype="multipart/form-data">
File to upload: <input type="file" name="uploadfile">
<input type="submit" value="Press to Upload..."> to upload the file!
</form>
Run Code Online (Sandbox Code Playgroud)
有人可以最早建议一个可能的解决方案.
我有一个问题,我在WebView中加载了一个页面 - 我不打算为整个应用程序发布代码,因为我的问题非常具体:我的HTML页面中的"选择文件"按钮适用于Android Studio创建了模拟器,但没有其他地方.
该按钮运行此代码:
<input type='file' id='fileInput' accept='text/plain' onchange='openFile(event);'>
var openFile = function(event) {
var input = event.target;
var reader = new FileReader();
reader.onload = function(e){
/* various string parsing */
};
reader.readAsText(input.files[0]);
};
Run Code Online (Sandbox Code Playgroud)
这在我的模拟器上工作得很好,这是API 23:点击按钮打开设备的默认文件选择器来选择文件.但是,在我的实际手机上,即API 16,单击此按钮不会执行任何操作.此外,在Genymotion模拟器(API 18)上,单击按钮不会执行任何操作.有什么我可以做的来解决这个问题吗?该按钮在我的手机和Genymotion模拟器上都没有产生任何错误消息,它只是坐在那里没有任何反应.
我需要应用程序在允许语音到文本的设备上工作,所以我不仅可以使用模拟器,而且我可以使用.
可能重复:
我知道,但我仍然问这个问题的原因是我不明白这些答案。我也知道,这是我的问题,那些贡献者做得很好。没有责怪任何人。
我是 Android Studio 的初学者,这些答案绝对不适合新手。因为到现在为止我已经盯着它们看了20个小时了。
无论如何,这是我的代码:
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends AppCompatActivity {
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = findViewById(R.id.webviewid);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("https://www.google.com/");
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setDomStorageEnabled(true);
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助是极大的赞赏。