APhone上WebView 退出后台 h5 视频音频继续播放,以及上传文件,扫一扫,相机,相册各种适配

app退出后台时候,WebView在后台依旧音频和视频继续播放,不能暂停掉,需要重写在WebView的dispatchWindowVisibilityChanged(int)方法

@Override
public void dispatchWindowVisibilityChanged(int visibility) {
    // 传入View.VISIBLE
    super.dispatchWindowVisibilityChanged(View.VISIBLE);
}

当传入View.GONE(切换至后台 或执行 onStop),在View中向下传播。通知WM当前窗口不可视。系统会调用view的dispatchWindowVisibilityChanged(visibility)方法。该方法通知子view(WebView)。届时WebView内部根据View的visibility控制音频的播放。

相机、相册

web_view.setWebChromeClient(new WebChromeClient(){

// 前提:申请相机、文件读写权限。
    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    public boolean onShowFileChooser(WebView mWebView, ValueCallback<Uri[]> filePathCallback, WebChromeClient.FileChooserParams fileChooserParams) {
        mUploadCallbackAboveL = filePathCallback;
        Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
        Intent Photo = new Intent(Intent.ACTION_PICK,
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        Intent chooserIntent = Intent.createChooser(Photo,getString(R.string.title));
        chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Parcelable[]{captureIntent});
        startActivityForResult(chooserIntent, REQUEST_CODE);
        return true;
    }
}

扫一扫

H5在WebView上启动扫一扫需要权限。在用户给予APP相机权限后H5访问相机扫一扫依然需要进行一次WebView的授权。

web_view.setWebChromeClient(new WebChromeClient(){
    @Override
    public void onPermissionRequest(PermissionRequest request) {
      
        final String[] requestedResources = request.getResources();
        for (String r : requestedResources) {
        // 具体需要什么权限在这里扩展即可。
            if (r.equals(PermissionRequest.RESOURCE_VIDEO_CAPTURE)) {
                request.grant(new String[]{PermissionRequest.RESOURCE_VIDEO_CAPTURE});
                break;
            }
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西波_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值