精华内容
下载资源
问答
  • input file 无法打开手机文件选择器

    千次阅读 2019-07-05 09:17:00
    版权声明:本文为博主原创文章,未经博主允许不得转载。 ...这种的格式,否则会在点击上传时弹出无法打开文件选择器这样的提示框 <input type="file" id="inputImage" n...

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37805167/article/details/78538044
    手机端对input file的accept格式有特定的要求,必须要image/.这种的格式,否则会在点击上传时弹出无法打开文件选择器这样的提示框

    <input type="file" id="inputImage" name="file" accept="image/gif,image/jpg,image/jpeg,image/bmp,image/png">
    1
    pc端对格式没有过多的要求,也可以如下格式:

    <input type="file" id="inputImage" name="file" accept=".gif,.jpg,.jpeg,.bmp,.png">
    ---------------------
    作者:我叫陈小皮。
    来源:CSDN
    原文:https://blog.csdn.net/m0_37805167/article/details/78538044
    版权声明:本文为博主原创文章,转载请附上博文链接!

    转载于:https://www.cnblogs.com/qqhfeng/p/11136327.html

    展开全文
  • Android开发使用WebView控件加载包含表单的 H5 网页,点击上传文件按钮,弹出对话框,选择从相册获取照片、拍照或打开手机文件管理,从 Android 手机选取一张图片或一个文件,然后通过ValueCallback接口传递,在 ...

    Android 开发使用WebView控件加载包含表单的 H5 网页,点击上传文件按钮,弹出对话框,选择从相册获取照片、拍照或打开手机文件管理器,从 Android 手机选取一张图片或一个文件,然后通过ValueCallback接口传递,在 WebView 加载的 H5网页 显示。

    这里有一个问题,点击“取消”或返回按钮,无法重复回调onShowFileChooseropenFileChooser方法,控制台打印:

    Attempted to finish an input event but the input event receiver has already been disposed

    一、深入理解onShowFileChooser或openFileChooser

    WebChromeClient各个方法这里不再赘述,特殊说明关于 WebChromeClient,它既不是接口也不是抽象类,但声明的方法很多方法体都是空的,这是让钊林感到疑惑之一。查看 WebView 源码,setWebChromeClient()传入WebChromeClient对象,然后使用传入的对象,调用 WebChromeClient 声明的方法,再将一些参数传递返回 WebChromeClient 空方法体。在 WebView 源码里面代码也很简单,详细的处理处理逻辑看不到,这是让钊林感到疑惑之二,感觉像一个黑箱子。

    然后就一直想,那么重写 WebChromeClient 的方法有什么作用呢?先看一下onShowFileChooser,如下:

    /**
         * Tell the client to show a file chooser.
         *
         * This is called to handle HTML forms with 'file' input type, in response to the
         * user pressing the "Select File" button.
         * To cancel the request, call <code>filePathCallback.onReceiveValue(null)</code> and
         * return {@code true}.
         *
         * @param webView The WebView instance that is initiating the request.
         * @param filePathCallback Invoke this callback to supply the list of paths to files to upload,
         *                         or {@code null} to cancel. Must only be called if the
         *                         {@link #onShowFileChooser} implementation returns {@code true}.
         * @param fileChooserParams Describes the mode of file chooser to be opened, and options to be
         *                          used with it.
         * @return {@code true} if filePathCallback will be invoked, {@code false} to use default
         *         handling.
         *
         * @see FileChooserParams
         */
        public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback,
                FileChooserParams fileChooserParams) {
            return false;
        }

     

    该方法的作用,告诉当前APP,打开一个文件选择器,比如:打开相册、启动拍照或打开本地文件管理器,实际上更好的理解,WebView加载包含上传文件的表单按钮,HTML 定义了 input 标签,同时 input 的 type 类型为 file,手指点击该按钮,回调onShowFileChooser这个方法,在这个重写的方法里面打开相册、启动照片或打开本地文件管理器,甚至做其他任何的逻辑处理,点击一次回调一次的前提是请求被取消,而取消该请求回调的方法:给ValueCallback接口的onReceiveValue抽象方法传入null,同时 onShowFileChooser 方法返回true

    ValueCallback的抽象方法被回调onShowFileChooser方法返回true;反之返回false;再来看一下 openFileChooser 的源码,如下:

     /**
         * Tell the client to open a file chooser.
         * @param uploadFile A ValueCallback to set the URI of the file to upload.
         *      onReceiveValue must be called to wake up the thread.a
         * @param acceptType The value of the 'accept' attribute of the input tag
         *         associated with this file picker.
         * @param capture The value of the 'capture' attribute of the input tag
         *         associated with this file picker.
         *
         * @deprecated Use {@link #onShowFileChooser} instead.
         * @hide This method was not published in any SDK version.
         */
        @SystemApi
        @Deprecated
        public void openFileChooser(ValueCallback<Uri> uploadFile, String acceptType, String capture) {
            uploadFile.onReceiveValue(null);
        }

    在所有发布的SDK版本中,openFileChooser是一个隐藏的方法,使用onShowFileChooser代替,但是最好同时重写showFileChooseropenFileChooser方法,Android 4.4.X以上的系统回调onShowFileChooser方法,低于或等于 Android 4.4.X的系统回调openFileChooser方法,只重写onShowFileChooseropenFileChooser造成在有的系统可以正常回调,在有的系统点击没有反应。

    仔细分析onShowFileChooseropenFileChooser回调方法,这两个方法之间的区别:

    第一个区别:前者ValueCallback接口回传一个Uri数组,后者回传一个Uri对象,在onActivityResult回调方法中调用ValueCallback接口方法onReceiveValue传入参数特别注意

    /** 
     *回调onShowFileChooser方法,onReceiveValue传入Uri对象数组 
     */  
    mFilePathCallback.onReceiveValue(new Uri[]{uri});  
    
    /** 
     *回调openFileChooser方法,onReceiveValue传入一个Uri对象 
     */  
    mFilePathCallback4.onReceiveValue(uri);  

    第二个区别:前者 将 后者的 acceptType、capture 封装成 FileChooserParams 抽象类

    二、实例展示onShowFileChooser或openFileChooser处理过程

    这是实例运行的效果图,H5表单写入两个上传文件的按钮,点击其中一个从底部弹出对话框,选择相册文件或拍照,点击“取消”按钮,再次点击“上传文件”按钮能够再次回调onShowFileChooseropenFileChooser方法。

    在之前的理解中,误解onShowFileChooseropenFileChooser只能打开相册或启动相机拍照,其实不仅仅是这样,onShowFileChooseropenFileChooser既然是一个回调的方法,可以重复执行各种逻辑代码,比如:启动另一个Activity、弹窗对话框、录制视频或录音等

    在上面的例子中,执行弹窗操作,将弹窗的处理代码放置onShowFileChooseropenFileChooser方法体,如下:

    @Override  
    public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {  
        super.onShowFileChooser(webView, filePathCallback, fileChooserParams);  
      
             popupDialog();  
        PickPhotoUtil.mFilePathCallback = filePathCallback;  
        /** 
         * 返回true,如果filePathCallback被调用;返回false,如果忽略处理 
         */  
        return true;  
    }  

    public void openFileChooser(ValueCallback<Uri> filePathCallback, String acceptType, String capture) {  
      
                 popupDialog();  
            String title = acceptType;  
            PickPho

    点击弹窗取消按钮、点击打开相册取消操作取消拍照,可能无法再次回调onShowFileChooseropenFileChooser方法,如果你没有在点击弹窗取消方法中或onActivityResult回调方法resultCode==RESULT_CANCELED处理,再次点击上传按钮,打印出 log:

    Attempted to finish an input event but the input event receiver has already been disposed

    同时,点击没有效果。解决方案:

     

     

    /** 
         * 弹窗,启动拍照或打开相册 
         */  
        public void popupDialog() {  
            ActionSheetDialog actionSheetDialog= new ActionSheetDialog(activity).builder()  
                    .setCancelable(false)  
                    .setCanceledOnTouchOutside(false)  
                    .addSheetItem("手机拍照", ActionSheetDialog.SheetItemColor.Blue,  
                            new ActionSheetDialog.OnSheetItemClickListener() {  
                                @Override  
                                public void onClick(int which) {  
                                    goToTakePhoto();  
                                }  
                            })  
                    .addSheetItem("手机相册", ActionSheetDialog.SheetItemColor.Blue,  
                            new ActionSheetDialog.OnSheetItemClickListener() {  
                                @Override  
                                public void onClick(int which) {  
                                    goForPicFile();  
                                }  
                            });  
            actionSheetDialog.show();  
            /** 
             * 设置点击“取消”按钮监听,目的取消mFilePathCallback回调,可以重复调起弹窗 
             */  
            actionSheetDialog.setOnClickListener(new View.OnClickListener() {  
                @Override  
                public void onClick(View v) {  
                    cancelFilePathCallback();  
                }  
            });  
        }  
    /** 
         * onActivityResult回调方法,当resultCode==RESULT_CANCELED,取消mFilePathCallback回调,可以* 重复调起弹窗 
         */  
            @Override  
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
            super.onActivityResult(requestCode, resultCode, data);  
            switch (requestCode) {  
            /** 
             *打开系统自带文件管理器回调 
             */  
                case PickPhotoUtil.REQUEST_FILE_PICKER:  
                    pickPhotoResult(resultCode, data);  
      
                    break;  
            /** 
             *打开相册回调 
             */  
                case PickPhotoUtil.REQUEST_CODE_PICK_PHOTO:  
                    pickPhotoResult(resultCode, data);  
      
                    break;  
            /** 
             *拍照后回调 
             */  
                case PickPhotoUtil.REQUEST_CODE_TAKE_PHOTO:  
                    takePhotoResult(resultCode);  
      
                    break;  
                default:  
                    break;  
            }  
        }  
    /** 
         *取消mFilePathCallback回调 
         */  
        private void cancelFilePathCallback() {  
            if (PickPhotoUtil.mFilePathCallback4 != null) {  
                PickPhotoUtil.mFilePathCallback4.onReceiveValue(null);  
                PickPhotoUtil.mFilePathCallback4 = null;  
            } else if (PickPhotoUtil.mFilePathCallback != null) {  
                PickPhotoUtil.mFilePathCallback.onReceiveValue(null);  
                PickPhotoUtil.mFilePathCallback = null;  
            }  
        }  

    在不期待回调 mFilePathCallback 的 onReceiveValue 方法时,调用 cancelFilePathCallback(),解决点击上传按钮无法重复回调的问题。

    展开全文
  • 准备工作 1、手机已ROOT,网上教程满天飞,这里就不讲解了。...1、长按文件选择用文本编辑器打开 2、找到下面这个键值ro.securestorage.support=true,修改这个值,将true,修改为false 修改后效果图:

    准备工作

    1、手机已ROOT,网上教程满天飞,这里就不讲解了。

    2、安装RE管理器,用来修改文件。


    打开RE管理器,找到/system/build.prop文件


    编辑文件

    1、长按文件,选择用文本编辑器打开

    2、找到这行配置:ro.securestorage.support=true,将true,修改为false

    修改后效果图:


    按菜单键,选择:保存并退出,重启手机即可

    以上方法可以解决wifi打开缓慢,wifi无法打开,wifi密码重启不能保存等问题,
    理论所有三星Android手机通用,本人note3 n900亲测有效,希望能帮助碰到类似问题的朋友。

    展开全文
  • 手机 pdf 阅读

    2009-02-12 23:00:29
    阅读时的*、#键的功能补重新定义,目前*键是旋转屏幕,(该功能目前仅作用于TXT上,其它格式此功能稍后实现),#键打开文件管理,返回键关闭当前阅读回到欢迎界面 修正阅读时回翻引起的“java.lang.RuntimeException...
  • 怎么在手机上压缩过大的PDF文件

    千次阅读 2018-09-05 19:02:25
    我们在传输PDF文件的时候,有时候会因为PDF文件过大而导致文件传输的比较...由于PDF文件比较特殊,想要压缩PDF文件,我们需要借助工具,我们打开手机上的PDF阅读打开之后,进入到工具的小功能页面,选择第五...

    我们在传输PDF文件的时候,有时候会因为PDF文件过大而导致文件传输的比较慢,

    或者就是在文件在传输的过程中会无法正常传送。这个时候,我们就需要给PDF文件

    压缩一下,但是我们该怎么压缩PDF文件呢?

    这里写图片描述
    工具:手机、迅捷PDF阅读器

    操作方法:

    1. 由于PDF文件比较特殊,想要压缩PDF文件,我们需要借助工具,我们打开手机上的PDF阅读器。
      这里写图片描述
    2. 打开之后,进入到工具的小功能页面,选择第五项功能“PDF压缩”。
      这里写图片描述
    3. 然后选择我们需要压缩的PDF文件。
      这里写图片描述
    4. 点击文件的右侧,接着文件的下方就会出现一些图标,点击“压缩”这个图标。
      这里写图片描述
      以上就是安卓手机压缩PDF文件的方法,也是小编的一些工作中的总结的一些方法,希望对你们有所帮助。
    展开全文
  • 魅族Flyme手机无法连接电脑ADB调试

    万次阅读 2018-09-03 20:47:47
    魅族Flyme手机无法连接电脑ADB调试 有些用魅族手机调试的童鞋可能会发现魅族手机可以连接电脑传输文件打开了调试功能,但是就是不能连接到ADB。有些情况下,打开设备管理也可以看到ADB那里有个黄色的感叹号,...
  • 转换的使用方法很简单,只需把你要转换的txt文件放到任意一个文件夹里面,然后运行txt文件编码批量转换选择你要转换的编码,然后点击选择文件夹按钮,在弹出窗口中选择你放txt文件的那个文件夹,然后确定。...
  • 解决KMPlayer App无法播放MKV视频文件

    千次阅读 2017-10-05 09:53:09
    解决KMPlayer App无法播放MKV视频文件的问题1、下载MKV解码包,通过QQ或者微信传送到手机上即可链接:http://pan.baidu.com/s/1slTvoJV 密码:0i0q2、在手机打开KMPlayer,在右上角选择Setting,选择External codec ...
  • 转换的使用方法很简单,只需把你要转换的txt文件放到任意一个文件夹里面,然后运行txt文件编码批量转换选择你要转换的编码,然后点击选择文件夹按钮,在弹出窗口中选择你放txt文件的那个文件夹,然后确定。...
  • 今天在Mac上安装了 Android Studio (Eclipse 也是一样的) 连接手机无法检测到手机,尝试一下以下操作: 1、在手机辅助功能中选择“开发人员工具”,勾选“USB调试”,“允许模拟位置”这两项 : 2、将手机连接电脑,...
  • 首先在“请选择接受遥控的蓝牙虚拟串口”后面,选择蓝牙的虚拟串口名字,软件里已经包括了从com1到com20的串口名字,请根据自己机器上的蓝牙虚拟串口名字选择,如果你无法确定,可以用手机上的蓝牙遥控软件测试1下...
  • 局域网文件快传实现

    2020-06-01 22:33:56
    情景: 笔记本无网络,手机和笔记本频繁传文件,使用USB连接电脑每次还得打开调试模式和文件读写模式,更何况oppo的垃圾系统有的时候还无法呼出设置,呜呼哀哉! 解决方案: 1.必须解决网络连接问题,蓝牙?好像也行,...
  • 如何将XPS转成PDF?最近有小伙伴收到很多后缀为XPS的文件,不知道如何打开,更不懂怎么样使用,如果能转成常用的PDF格式就好了。...这种方式一般适用于电脑端,毕竟手机无法进行这种虚拟打印机的操作。但如
  • 桃源文件系统v3.3

    2014-08-04 12:12:37
    4、文件预览或编辑:支持各种图片文件即时预览、媒体或flash文件在线播放、文本及PDF文件在线打开,可在后台扩充文件支持格式。可在线编辑TXT、word、excel、PowerPoint等格式文件,编辑后回存服务器,无需下载修改...
  •  (2)就是选择"Java加载",手机显示"请插上电缆,然后再将数据线插上手机里, 连接电脑,手机会显示"Jal连接正在启动"等字,跟着回到原界面就OK啦。  (3)运行Midway 2.8汉化版,会提示设置端口,选"是"进行端口...
  • 手机PDF转Word超简单的方法?因为PDF文件无法直接编辑,所以...首先我们要选择转换工具,在手机应用市场找到并打开我们的迅捷PDF转换,进入准备阶段。 2:选择转换方式 打开后,在首页选择你想要进行转换的文件...
  • 4、文件预览或编辑:支持各种图片文件即时预览、媒体或flash文件在线播放、文本及PDF文件在线打开,可在后台扩充文件支持格式。可在线编辑TXT、word、excel、PowerPoint等格式文件,编辑后回存服务器,无需下载修改...
  • 4、文件预览或编辑:支持各种图片文件即时预览、媒体或flash文件在线播放、文本及PDF文件在线打开,可在后台扩充文件支持格式。可在线编辑TXT、word、excel、PowerPoint等格式文件,编辑后回存服务器,无需下载修改...
  • 最近发现QQ分身下载的文件文件管理无法找到,在QQ文件管理中看到位置是/storage/emulated/128,如下图所示: 但是系统自带的文件管理器无法定位到这个位置。 -------------------------------------------...
  • PDF转 Word如何在线转换?面对工作中的各种Word、PDF、Excel等文件,除了日常的查阅、编辑外,最麻烦的一点就是文档格式的转换,...在手机应用市场找到并打开我们的转换工具迅捷PDF转换打开后在首页选择并点击P...
  • 64GB和128GB大容量的手机内存卡(TF卡)在电脑下只能格式化为NTFS和efat格式的文件系统格式,这种格式,手机无法识别,那么手机怎么识别这种大容量的内存卡。 1. 首先下载“U盘低级格式化”工具(HA-LLFTOOL)。 2...
  • 手机内存卡数据删除怎么恢复?手机内存卡上有时候存着我们相当重要的数据,然而不小心...步骤1、首先把无法格式化的SD卡通过读卡接入电脑,电脑弹出提示格式化的窗口不要点击确定,取消后打开“开始菜单”,选择“开
  • 如果你的手机所刷的固件是安卓自制的固件话,那么你的的手机中可能已经集成了“APK安装”,你只需要把要安装的文件用读卡拷贝到内存卡中。然后在在手机程序菜单中点“设置”进入,然后点击“应用程序”选项,...
  • Create React App入门 该项目是通过引导的。 可用脚本 在项目目录中,可以运行: yarn start 在开发模式下运行应用程序。 打开在浏览器中查看它。... 相反,它将所有配置文件和传递依赖项(webpack
  • Create React App入门 该项目是通过引导的。 可用脚本 在项目目录中,可以运行: npm start 在开发模式下运行应用程序。打开在浏览器中查看它。...相反,它将所有配置文件和传递依赖项(webpack,Babel,ESL
  • MP3GainGUI(MP3音量增大)V1.3.6 绿色美化优化版 相信许多朋友在用MP3播放器欣赏MP3音乐时,经常碰到因各首MP3歌曲的音量不同,只得使用线控频繁调整音量大小的问题,这样做会影响我们欣赏音乐的心情的!怎么把很...
  • 新功能:添加了自动分割功能,转换出来的语音小说可以按设置,自动分成多个文件,有效解决了部分用户手机或MP3无法一次存储下整本语音小说的问题。 -------------------------------------------------------------...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 126
精华内容 50
关键字:

手机无法打开文件选择器