微信6.2.2版本使用文本上传框出现没有应用可执行此操作的问题

【问题描述】

使用安卓手机的微信,点击文本上传框出现没有应用可执行此操作的提示

【问题常见还原】

测试代码:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
t1
<h2>这是一个文件选择框,测试兼容性使用。</h2>
<div><input type="file" accept=".gif,.jpg,.jpeg,.png,.bmp"  id="file"> </div>
<script type="text/javascript">
    var _fileInput=document.getElementById("file");
    _fileInput.addEventListener("change",function(){

    if (_fileInput.files.length === 0) {
        alert("请选择图片");
        return; }
    var oFile = _fileInput.files[0];
    //if (!rFilter.test(oFile.type)) { alert("You must select a valid image file!"); return; }

    /*  if(oFile.size>5*1024*1024){
     message(myCache.par.lang,{cn:"照片上传:文件不能超过5MB!请使用容量更小的照片。",en:"证书上传:文件不能超过100K!"})
     changePanel("result");
     return;
     }*/
    if(!new RegExp("(jpg|jpeg|gif|png)+","gi").test(oFile.type)){
        layer.alert("照片上传:文件类型必须是JPG、JPEG、PNG或GIF!",3);
        return;
    }
        alert("您选择了文件:"+oFile.name);
    },false);
</script>
</body>
</html>

分别用uc浏览器,pc端正常选择文件,在微信端操作时候出现:

这里写图片描述

【问题解决方案】

经常排查发现,只有使用了accept属性时候微信浏览器才抽风,假如不使用,那么就会

测试代码如下:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
t1
<h2>这是一个文件选择框,测试兼容性使用。</h2>
<div><input type="file"   id="file"> </div>
<script type="text/javascript">
    var _fileInput=document.getElementById("file");
    _fileInput.addEventListener("change",function(){

    if (_fileInput.files.length === 0) {
        alert("请选择图片");
        return; }
    var oFile = _fileInput.files[0];
    //if (!rFilter.test(oFile.type)) { alert("You must select a valid image file!"); return; }

    /*  if(oFile.size>5*1024*1024){
     message(myCache.par.lang,{cn:"照片上传:文件不能超过5MB!请使用容量更小的照片。",en:"证书上传:文件不能超过100K!"})
     changePanel("result");
     return;
     }*/
    if(!new RegExp("(jpg|jpeg|gif|png)+","gi").test(oFile.type)){
        layer.alert("照片上传:文件类型必须是JPG、JPEG、PNG或GIF!",3);
        return;
    }
        alert("您选择了文件:"+oFile.name);
    },false);
</script>
</body>
</html>

测试结果:
这里写图片描述

【推断】

在安卓app里面,通常都是自己开发一个界面让用户选择本机图片或者本机文件,通常都是一个新的activity,然后再原有的acivity通过intent来调用新的选择界面,一旦选择完毕再从新的activity返回到旧有界面进行处理,那么问题来了,现在版本的微信可能对input的accept属性进行了处理,希望可以判断这些属性来分别调用不同的activity,譬如,图片选择的activity,文件选择的activity,但是可能还没有做好对应的activity或者对这个accept属性处理不够好,出现了这个空activity问题,于是提示没有应用可以执行此操作。

【补充】

input的accept属性兼容性不知道如何,但是,在各个浏览器上面肯定都不太一样的,为了保险起见,前端需要判断文件后缀名,当然后台也要判断文件内容及相关格式。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Logstash-6.2.2是一个用于数据收集、转换和发送的开源数据处理引擎。它是Elastic Stack(ELK Stack)的一个组件,用于处理各种类型的数据并将其发送到Elasticsearch用于后续分析和可视化。 Logstash-6.2.2可用于Windows操作系统。要在Windows上安装Logstash-6.2.2,首先需要确保你的系统满足以下要求:至少2GB的内存、Java JDK 8的安装以及网络连接。 在安装前,你需要下载Logstash-6.2.2的Windows版本。然后,将压缩包解压到你想要安装的目录。接下来,在Logstash的安装目录中,你需要使用文本编辑器打开config文件夹中的logstash.yml文件。 在logstash.yml文件中,你需要配置输入、过滤器和输出。输入决定了要从哪里收集数据,如文件、数据库或网络。过滤器用于处理和转换数据。输出用于发送数据到目标地点,如Elasticsearch或其他目标。 完成配置后,你可以通过运行bin目录下的logstash.bat文件来启动Logstash。运行时,Logstash会加载配置文件并开始收集、处理和发送数据。 Logstash-6.2.2提供了丰富的插件库,可以用于扩展其功能。你可以在安装目录的plugins文件夹中找到并安装所需的插件。这些插件包括输入插件、过滤器插件和输出插件,可以满足不同场景下的数据处理需求。 总结来说,Logstash-6.2.2 windows版本是一个强大的数据处理引擎,可以帮助你收集、转换和发送各种类型的数据。通过配置输入、过滤器和输出,你可以灵活地处理数据,并将其发送到目标地点。使用Logstash的插件库,你可以扩展其功能以满足不同场景下的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值