【发布时间】:2015-02-24 05:46:01
【问题描述】:
Min SDK API 15
你好,
我使用的 webview 上有一个按钮,可以浏览应用程序的照片库。
但是,当在 webview 中单击按钮时,什么也没有发生。
网址格式为:
https://www.xxxxxxxxxxx
我添加了以下权限:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.MANAGE_DOCUMENTS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
我有一个片段,它将在 onCreateView 方法(仅限 sn-p)中加载 webview,并启用 javascript。
if(!message.isEmpty()) {
WebView webView = (WebView)view.findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl(message);
}
我创建了一个简单的 html 页面来测试:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Test Android Popup</title>
</head>
<body>
<label>Test Alert 1:</label>
<button type="button" onClick="alert('Test Alert Box1');">Click Me!</button>
<br>
<label>Test Browse file</label>
<input type="file" name="img">
</body>
</html>
所以 url 将被加载到 webview 中。 webview 显示一个按钮,用户将单击该按钮来浏览其画廊中的照片。
网页视图如下所示:
当我单击它们时,所有按钮都不起作用。
非常感谢您的任何建议,
此代码 sn-p 适用于
webView.setWebChromeClient(new WebChromeClient() {
/* Open File */
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
mImageFilePath = uploadMsg;
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
startActivityForResult(intent, FILECHOOSER_RESULTCODE);
}
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) {
mImageFilePath = uploadMsg;
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
startActivityForResult(intent, FILECHOOSER_RESULTCODE);
}
});
【问题讨论】:
-
你的消息字符串是什么?你那里有 https:// 吗?只有万维网。不起作用... Ups 抱歉误读问题
-
我刚刚用 uri 的格式更新了我的答案。
-
我想你已经更新了你的问题...
-
您确定网址的格式不是
https://www.xxxxxxxx.*? -
链接是我们的客户网站,格式为
https://www.address_to_client