All Products
Search
Document Center

Mobile Platform as a Service:mPaaS kernel supports WebRTC

Last Updated:Jun 04, 2026

When a WebRTC-based H5 page requests camera or microphone access, Android requires explicit permission authorization. Configure a custom H5WebChromeClient to handle these requests in your mPaaS app.

WebRTC permission authorization

When a WebRTC-based H5 page requests access to the camera or microphone, Android fires the onPermissionRequest callback. Override this callback in a custom H5WebChromeClient to grant or deny the request based on whether your app holds the required permissions.

After initialization, register your custom permission handler with H5Utils.setProvider():

H5Utils.setProvider(MPH5WebChromeClientProvider.class.getName(), new MPH5WebChromeClientProvider() {
  @Override
  public H5WebChromeClient generateH5WebChromeClient(H5PageImpl h5Page) {
      return new CustomH5WebChromeClient(h5Page);
  }
});

Implement CustomH5WebChromeClient to handle permission requests:

package com.mpaas.demo;

import android.webkit.PermissionRequest;

import com.alipay.mobile.nebulacore.core.H5PageImpl;
import com.alipay.mobile.nebulacore.web.H5WebChromeClient;

public class CustomH5WebChromeClient extends H5WebChromeClient {

    public CustomH5WebChromeClient() {
    }

    public CustomH5WebChromeClient(H5PageImpl page) {
        super(page);
    }

    @Override
    public void onPermissionRequest(PermissionRequest request) {
        // Check if the app includes the permission. If not, request the corresponding permission.
        
        // If the permission is granted, invoke grant
        //request.grant(request.getResources());

        // If the permission is rejected, call deny
        // request.deny(request.getResources());
    }

    @Override
    public void onPermissionRequestCanceled(PermissionRequest request) {
    }
}