HTML5 中,使用 audio 或者 video,有时候我们会在标签中把它设置为自动播放,或者用 js 去控制它播放的时机。但是以上两个情景,无论是在 iOS 还是在 Android 的 WebView 默认设置中,都是不支持的。

iOS

参考文档: UIWebView

@property(nonatomic) BOOL mediaPlaybackRequiresUserAction

  • The default value on both iPad and iPhone is YES. To make media play automatically when loaded, set this property to NO and ensure the

mediaPlaybackRequiresUserAction 的默认值为 YES。

1
2
// 修改相应设置即可
_webView.mediaPlaybackRequiresUserAction = NO;

Android

参考文档: WebSettings

Added in API level 17

public abstract void setMediaPlaybackRequiresUserGesture (boolean require)

  • Sets whether the WebView requires a user gesture to play media. The default is true.

Android 4.2 之后,也引入了与 iOS 类似的方案,并且默认值也是true。

1
2
// 修改相应设置即可
webView.getSettings().setMediaPlaybackRequiresUserGesture(false);