Android Java通过WebView上传文件而不使用FileChooser
创始人
2024-08-14 08:00:05
0

在Android Java中,可以通过WebView上传文件而不使用FileChooser。以下是一个示例解决方法:

  1. 首先,在AndroidManifest.xml文件中添加以下权限:

  1. 在Activity中,创建一个自定义的WebViewClient,并重写shouldOverrideUrlLoading方法:
WebView webView = (WebView) findViewById(R.id.webview);
webView.setWebViewClient(new CustomWebViewClient());

private class CustomWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            boolean isExternalRequest = request.getUrl().toString().startsWith("http://") || request.getUrl().toString().startsWith("https://");
            if (isExternalRequest) {
                Intent intent = new Intent(Intent.ACTION_VIEW, request.getUrl());
                startActivity(intent);
                return true;
            }
        }
        return false;
    }
}
  1. 在Activity中,重写onActivityResult方法,以处理文件上传:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == FILE_UPLOAD_REQUEST_CODE && resultCode == RESULT_OK) {
        Uri fileUri = data.getData();
        // 处理文件上传逻辑
    }
}
  1. 在Activity中,重写onCreateContextMenu方法,以显示上下文菜单:
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    menu.setHeaderTitle("选择文件");
    menu.add(0, FILE_UPLOAD_REQUEST_CODE, 0, "文件管理器");
}
  1. 在Activity中,注册WebView以显示上下文菜单:
registerForContextMenu(webView);

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    WebView.HitTestResult result = webView.getHitTestResult();
    if (result.getType() == WebView.HitTestResult.UNKNOWN_TYPE) {
        return;
    }
    if (result.getType() == WebView.HitTestResult.EDIT_TEXT_TYPE) {
        return;
    }
    menu.add(0, FILE_UPLOAD_REQUEST_CODE, 0, "上传文件");
}
  1. 最后,在网页中,使用input标签的类型为file的元素,以触发文件上传:

通过以上步骤,可以实现在Android Java中,通过WebView上传文件而不使用FileChooser。注意,该解决方法适用于Android版本5.0及以上。

相关内容

热门资讯

透视智能ai!wepoker智... 您好,wepoker智能辅助插件这款游戏可以开挂的,确实是有挂的,需要了解加去威信【48527505...
透视教学!wepoker俱乐部... 透视教学!wepoker俱乐部辅助,德州透视脚本,策略教程(真的有挂)-哔哩哔哩1、wepoker俱...
透视脚本!we-poker靠谱... 透视脚本!we-poker靠谱吗,wpk显示有辅助,教程书教程(有挂辅助)-哔哩哔哩1、游戏颠覆性的...
透视辅助!wpk透视怎么安装,... 透视辅助!wpk透视怎么安装,拱趴大菠萝万能挂,手段教程(有挂秘诀)-哔哩哔哩1、进入游戏-大厅左侧...
透视教学!wpk辅助最怕三个东... 透视教学!wpk辅助最怕三个东西,aapoker ai插件,课程教程(有挂分析)-哔哩哔哩1、下载好...
透视科技!wepoker怎么发... 透视科技!wepoker怎么发冤家牌,wepoker是不是有人用挂,练习教程(新版有挂)-哔哩哔哩1...
透视线上!哈糖大菠萝怎么挂,h... 透视线上!哈糖大菠萝怎么挂,hhpoker德州有挂吗,操作教程(有挂方式)-哔哩哔哩1、哈糖大菠萝怎...
透视新版!pokemmo辅助工... 透视新版!pokemmo辅助工具,德州透视脚本,法子教程(的确有挂)-哔哩哔哩1、游戏颠覆性的策略玩...
透视新版!wejoker辅助软... 透视新版!wejoker辅助软件,wepoker有没有挂,秘籍教程(有挂存在)-哔哩哔哩1)wepo...
透视存在!aapoker如何设... 透视存在!aapoker如何设置胜率,wepoker有透视吗,大纲教程(有挂讲解)-哔哩哔哩1、点击...