File tree Expand file tree Collapse file tree 5 files changed +32
-0
lines changed
Expand file tree Collapse file tree 5 files changed +32
-0
lines changed Original file line number Diff line number Diff line change 1212 onChangeState= {event => console .log (event )}
1313 onReady= {() => console .log (" ready" )}
1414 onError= {e => console .log (e)}
15+ onFullScreenChange= {status => console .log (status)}
1516 onPlaybackQualityChange= {q => console .log (q)}
1617 volume= {50 }
1718 playbackRate= {1 }
3738- [ onChangeState] ( #onChangeState )
3839- [ onReady] ( #onReady )
3940- [ onError] ( #onError )
41+ - [ onFullScreenChange] ( #onFullScreenChange )
4042- [ onPlaybackQualityChange] ( #onPlaybackQualityChange )
4143- [ mute] ( #mute )
4244- [ volume] ( #volume )
@@ -173,6 +175,14 @@ Possible values are:
173175| video_not_found | The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private. |
174176| embed_not_allowed | The owner of the requested video does not allow it to be played in embedded players. |
175177
178+ ## onFullScreenChange
179+
180+ ** _ function(status: boolean)_ **
181+
182+ This event fires whenever the fullscreen option is clicked in the player.
183+
184+ The data value that the API passes to the event listener function will be a boolean that identifies the new fullscreen status.
185+
176186## onPlaybackQualityChange
177187
178188** _ function(quality: string)_ **
Original file line number Diff line number Diff line change @@ -92,6 +92,10 @@ export interface YoutubeIframeProps {
9292 * callback for when the player's state changes.
9393 */
9494 onChangeState ?: ( event : String ) => void ;
95+ /**
96+ * callback for when the fullscreen option is clicked in the player. It signals the new fullscreen state of the player.
97+ */
98+ onFullScreenChange ?: ( status : Boolean ) => void ;
9599 /**
96100 * callback for when the video playback quality changes. It might signal a change in the viewer's playback environment.
97101 */
Original file line number Diff line number Diff line change @@ -54,6 +54,7 @@ const [playing, setPlaying] = useState(true);
5454 onChangeState= {event => console .log (event )}
5555 onReady= {() => console .log (" ready" )}
5656 onError= {e => console .log (e)}
57+ onFullScreenChange= {status => console .log (status)}
5758 onPlaybackQualityChange= {q => console .log (q)}
5859 volume= {50 }
5960 playbackRate= {1 }
@@ -79,6 +80,7 @@ list of available APIs -
7980- onChangeState
8081- onReady
8182- onError
83+ - onFullScreenChange
8284- onPlaybackQualityChange
8385- mute
8486- volume
Original file line number Diff line number Diff line change @@ -132,6 +132,10 @@ export const MAIN_SCRIPT = (
132132 });
133133 }
134134
135+ function onFullScreenChange() {
136+ window.ReactNativeWebView.postMessage(JSON.stringify({eventType: 'fullScreenChange', data: !!document.fullscreenElement}))
137+ }
138+
135139 function onPlayerError(event) {
136140 window.ReactNativeWebView.postMessage(JSON.stringify({eventType: 'playerError', data: event.data}))
137141 }
@@ -152,6 +156,14 @@ export const MAIN_SCRIPT = (
152156 function onPlayerStateChange(event) {
153157 window.ReactNativeWebView.postMessage(JSON.stringify({eventType: 'playerStateChange', data: event.data}))
154158 }
159+
160+ document.addEventListener('fullscreenchange', onFullScreenChange)
161+
162+ document.addEventListener('mozfullscreenchange', onFullScreenChange)
163+
164+ document.addEventListener('msfullscreenchange', onFullScreenChange)
165+
166+ document.addEventListener('webkitfullscreenchange', onFullScreenChange)
155167 </script>
156168 </body>
157169</html>` ;
Original file line number Diff line number Diff line change @@ -31,6 +31,7 @@ const YoutubeIframe = (
3131 allowWebViewZoom = false ,
3232 forceAndroidAutoplay = false ,
3333 onChangeState = _event => { } ,
34+ onFullScreenChange = _status => { } ,
3435 onPlaybackQualityChange = _quality => { } ,
3536 onPlaybackRateChange = _playbackRate => { } ,
3637 } ,
@@ -117,6 +118,9 @@ const YoutubeIframe = (
117118 const message = JSON . parse ( event . nativeEvent . data ) ;
118119 try {
119120 switch ( message . eventType ) {
121+ case 'fullScreenChange' :
122+ onFullScreenChange ( message . data ) ;
123+ break ;
120124 case 'playerStateChange' :
121125 onChangeState ( PLAYER_STATES [ message . data ] ) ;
122126 break ;
You can’t perform that action at this time.
0 commit comments