Android“Back Button”导致javascript停止
Android "Back Button" causes javascript to stop
我正在开发一个带有网络视图的应用程序。我有一个文件上传元素,我的应用程序可以通过在"打开文件选择器"方法中显示警报对话框来选择"相机"或"图库"。这是我正在做的事情:
-我点击文件上传元素
- 弹出一个警报对话框,读取我选择的"相机"或"画廊">
- 我改变主意,放弃选择文件,然后单击"Android后退按钮">
当我单击后退按钮时,所有javascript都停止了,我的页面也停止了响应。
JavaScript有理由停止吗?提前致谢
如果要在 Web 视图上使用后退按钮,则必须在意图 Web 视图之前声明。您必须实现方法 onBackPrasses 或 onKeyPress 并获取 KEY 值。您可以在此链接上找到答案 在 WebView 中启用后退按钮
也用于启用JavaScript
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
我尝试了几个技巧,终于找到了解决方案。
FileUpload元素在所有这些方法调用之后都需要一个"ValueCallback"。所以"onActivityResult"必须向fileupload元素返回一个结果。但是当用户取消警报对话框时,无法调用"onActivityResult"方法。这会导致文件上传元素生成错误。
我将"setOnCancelListener"添加到我的警报对话框中,如下所示:
.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
mUploadMessage.onReceiveValue(null);
mUploadMessage = null;
}
})
您必须至少向文件上传元素返回"null"才能继续操作。否则文件上传会停滞,这会导致所有 javascript 停滞不前。
我还抓住了另一个使文件上传停滞的案例:
- 用户点击文件上传元素
- 选择一个选择(凸轮或加勒无关紧要(
- 凸轮或图库出现,用户按下"后退按钮">
这会将RESULT_CANCELED代码返回到"onActivityResult"方法,您必须像这样处理它:
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent intent) {
try {
super.onActivityResult(requestCode, resultCode, intent);
if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK
&& intent != null)
mUploadMessage.onReceiveValue(intent.getData());
else
mUploadMessage.onReceiveValue(null);
} catch (Exception e) {
Log.e("Error", e.getLocalizedMessage());
mUploadMessage.onReceiveValue(null);
} finally {
mUploadMessage = null;
}
}
mUploadMessage 的定义如下:
private ValueCallback<Uri> mUploadMessage;
- 处理JSON字符串会导致JavaScript错误
- Ajax对web URL的调用导致javascript错误
- 在正则表达式中添加 (?i) 会导致 javascript 中出现错误“无效的正则表达式组”
- 函数导致javascript错误
- Symfony2 assetic导致javascript错误
- GridView页面索引更改事件导致JavaScript运行时错误
- 导致javascript停止运行的最大高度
- JSF richfaces 会导致 JavaScript 停止工作
- 换行符导致 JavaScript 中的错误“未终止字符串文字”
- IF 条件下的布尔值导致 JavaScript 中的错误
- JavaScript 难题:无法理解 parseInt 导致 JavaScript 中的 JavaScript
- Android“Back Button”导致javascript停止
- 导致javascript Date()发生故障的外部iframe
- mysql导致javascript全局数组
- ajax附加导致javascript被多次执行
- 带参数的单击会导致javascript语法错误
- 加法会导致 JavaScript 给出错误
- 当队列为空时,pluploader-uploader.start()会导致javascript错误
- 缺少+号会导致javascript解释器失控
- 加上一个按钮导致JavaScript错误