WebView无法从相机捕获图像或从库中选择图像

时间:2017-05-04 04:51:02

标签: android webview

我在WebView中加载了一个URL,URL页面包含从设备摄像头捕获图像的功能或从库中选择图像。如果我在浏览器中打开URL,一切正常,但是,如果我在WebView中打开相同的URL,则相机和图库功能不起作用。我想我错过了一些WebView设置。请检查我的下面的代码并帮助我解决我的问题。

以下是我的WebViewActivity -

public class WebViewActivity extends AppCompatActivity
{
    WebView myWebView;
    ProgressBar myProgress;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my_webview);
        findViews();
    }

    private void findViews()
    {
        myWebView= (WebView) findViewById(R.id.myWebView);
        myProgress= (ProgressBar) findViewById(R.id.myProgress);
        myWebView.setWebViewClient(new myWebClient());
        myWebView.getSettings().setJavaScriptEnabled(true);
        myWebView.getSettings().setLoadWithOverviewMode(true);
        //Other webview settings
        myWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
        myWebView.setScrollbarFadingEnabled(false);
        myWebView.getSettings().setBuiltInZoomControls(true);
        myWebView.getSettings().setPluginState(WebSettings.PluginState.ON);
        myWebView.getSettings().setAllowFileAccess(true);
        myWebView.getSettings().setSupportZoom(true);

        myWebView.loadUrl(SafeNestConstants.MEDLIFE_URL);
    }

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

        @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request)
        {
            myProgress.setVisibility(View.VISIBLE);
            view.loadUrl(request.getUrl().toString());
            return true;
        }
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        {
            // TODO Auto-generated method stub
            myProgress.setVisibility(View.VISIBLE);
            view.loadUrl(url);
            return true;

        }

        @Override
        public void onPageFinished(WebView view, String url)
        {
            // TODO Auto-generated method stub
            super.onPageFinished(view, url);
            myProgress.setVisibility(View.GONE);
        }
    }
}

以下是我的activity_my_webview.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_terms_and_conditions"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.mypackage.WebViewActivity">

    <WebView
        android:id="@+id/myWebView"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </WebView>

    <ProgressBar
        android:id="@+id/myProgress"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:indeterminateDrawable="@drawable/progress_medium"
        android:visibility="visible" />
</RelativeLayout>

如果我可以提供相同的更多信息,请告诉我。谢谢。

0 个答案:

没有答案