首页 > 解决方案 > 片段中的 webView 上传文件(如图像)

问题描述

我有几种代码组合,但我仍然找不到能够使上传图像正常运行的方法。我已授予相机、写入和读取存储的权限。我认为问题在于Java代码。下面是我当前的 java 片段代码。我希望你们中的一些人可以帮助我如何使下面的代码运行,同时能够上传照片/使用相机或文件。

上传按钮的照片需要正常工作

当前的 Java 代码:

 public class DashboardFragment extends Fragment {

     public DashboardFragment() {

     }

     WebView webView2;
     String url = "https://gcs-bn.com/my-account/edit-account/";


     public View onCreateView(@NonNull LayoutInflater inflater,
                              ViewGroup container, Bundle savedInstanceState)
     {

         View v = inflater.inflate(R.layout.fragment_dashboard, container, false);
         webView2 = (WebView)v.findViewById(R.id.webView2);
         webView2.loadUrl(url);
         WebSettings settings = webView2.getSettings();
         settings.setJavaScriptEnabled(true);
         webView2.setWebViewClient(new MyWebViewClient());
         return v;
     }


     private class MyWebViewClient extends WebViewClient{
         @Override
         public void onPageStarted(WebView view, String url, Bitmap favicon) {
             // TODO Auto-generated method stub
             super.onPageStarted(view, url, favicon);
         }

         @SuppressWarnings("deprecation")
         @Override
         public boolean shouldOverrideUrlLoading(WebView view, String url) {
             if (url.startsWith("mailto:")) {
                 //Handle mail Urls
                 startActivity(new Intent(Intent.ACTION_SENDTO, Uri.parse(url)));
             } else if (url.startsWith("tel:")) {
                 //Handle telephony Urls
                 startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(url)));
             } else {
                 view.loadUrl(url);
             }
             return true;
         }

         @TargetApi(Build.VERSION_CODES.N)
         @Override
         public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
             final Uri uri = request.getUrl();
             if (uri.toString().startsWith("mailto:")) {
                 //Handle mail Urls
                 startActivity(new Intent(Intent.ACTION_SENDTO, uri));
             } else if (uri.toString().startsWith("tel:")) {
                 //Handle telephony Urls
                 startActivity(new Intent(Intent.ACTION_DIAL, uri));
             } else {
                 //Handle Web Urls
                 view.loadUrl(uri.toString());
             }
             return true;
         }
     } }

标签: androidimagewebviewuploadfragment

解决方案


是管理最大功能的最佳 webview 库。


推荐阅读