169 lines
		
	
	
		
			No EOL
		
	
	
		
			5.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			169 lines
		
	
	
		
			No EOL
		
	
	
		
			5.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <html>
 | |
| 	<head>
 | |
| 		<link type="text/css" rel="stylesheet" href="https://source.zoom.us/2.10.1/css/bootstrap.css" />
 | |
| 		<link type="text/css" rel="stylesheet" href="https://source.zoom.us/2.10.1/css/react-select.css" />
 | |
| 		<meta charset="utf-8" />
 | |
| 		<meta http-equiv="origin-trial" content="" />
 | |
| 	</head>
 | |
| 	<body>
 | |
| 		<script src="https://source.zoom.us/2.10.1/lib/vendor/react.min.js"></script>
 | |
| 		<script src="https://source.zoom.us/2.10.1/lib/vendor/react-dom.min.js"></script>
 | |
| 		<script src="https://source.zoom.us/2.10.1/lib/vendor/redux.min.js"></script>
 | |
| 		<script src="https://source.zoom.us/2.10.1/lib/vendor/redux-thunk.min.js"></script>
 | |
| 		<script src="https://source.zoom.us/2.10.1/lib/vendor/lodash.min.js"></script>
 | |
| 		<script src="https://source.zoom.us/zoom-meeting-2.10.1.min.js"></script>
 | |
| 		<script type="text/javascript">
 | |
| 			var audioJoin = 0;
 | |
| 			var videoJoin = 0;
 | |
| 			var join = 0;
 | |
| 
 | |
| 			function controlUserInterface(_) {
 | |
| 				var audioButton = document.getElementsByClassName('join-audio-container__btn')[0];
 | |
| 				var audioContainer = audioButton ? audioButton.parentElement : null;
 | |
| 				var chat = document.querySelector("div[feature-type='chat']");
 | |
| 				var fullScreenButton = document.getElementsByClassName('full-screen-icon')[0];
 | |
| 				var info = document.getElementsByClassName('meeting-info-container')[0];
 | |
| 				var joinAudioButton = document.getElementsByClassName('join-audio-by-voip__join-btn')[0];
 | |
| 				var joinButton = document.getElementsByClassName('joinWindowBtn')[0];
 | |
| 				var leave = document.getElementsByClassName('footer__leave-btn-container')[0];
 | |
| 				var more = document.querySelector("div[feature-type='more']");
 | |
| 				var participants = document.querySelector("div[feature-type='participants']");
 | |
| 				var reaction = document.querySelector("div[feature-type='reaction']");
 | |
| 				var settings = document.querySelector("div[feature-type='settings']");
 | |
| 				var sharing = document.querySelector("div[feature-type='sharing']");
 | |
| 				var videoButton = document.getElementsByClassName('send-video-container__btn')[0];
 | |
| 				var videoContainer = videoButton ? videoButton.parentElement : null;
 | |
| 
 | |
| 				if (audioContainer && !'%_AUDIO_MUTED_%') {
 | |
| 					audioContainer.style.visibility = 'hidden';
 | |
| 				}
 | |
| 
 | |
| 				if (chat && !'%_ALLOW_CHAT_%') {
 | |
| 					chat.style.visibility = 'hidden';
 | |
| 				}
 | |
| 
 | |
| 				if (fullScreenButton) {
 | |
| 					fullScreenButton.style.visibility = 'hidden';
 | |
| 				}
 | |
| 
 | |
| 				if (info) {
 | |
| 					info.style.visibility = 'hidden';
 | |
| 				}
 | |
| 
 | |
| 				if (joinAudioButton && !'%_AUDIO_MUTED_%' && audioJoin < 500) {
 | |
| 					joinAudioButton.click();
 | |
| 					audioJoin++;
 | |
| 				}
 | |
| 
 | |
| 				if (joinButton && join < 500) {
 | |
| 					joinButton.click();
 | |
| 					join++;
 | |
| 				}
 | |
| 
 | |
| 				if (leave) {
 | |
| 					leave.style.visibility = 'hidden';
 | |
| 				}
 | |
| 
 | |
| 				if (more) {
 | |
| 					more.style.visibility = 'hidden';
 | |
| 				}
 | |
| 
 | |
| 				if (participants) {
 | |
| 					participants.style.visibility = 'hidden';
 | |
| 				}
 | |
| 
 | |
| 				if (reaction) {
 | |
| 					reaction.style.visibility = 'hidden';
 | |
| 				}
 | |
| 
 | |
| 				if (settings) {
 | |
| 					settings.style.visibility = 'hidden';
 | |
| 				}
 | |
| 
 | |
| 				if (sharing) {
 | |
| 					sharing.style.visibility = 'hidden';
 | |
| 				}
 | |
| 
 | |
| 				if (videoButton && !'%_VIDEO_MUTED_%' && videoJoin < 500) {
 | |
| 					videoButton.click();
 | |
| 					videoJoin++;
 | |
| 				}
 | |
| 
 | |
| 				if (videoContainer && !'%_VIDEO_MUTED_%') {
 | |
| 					videoContainer.style.visibility = 'hidden';
 | |
| 				}
 | |
| 
 | |
| 				requestAnimationFrame(controlUserInterface);
 | |
| 			}
 | |
| 
 | |
| 			function startMeeting(credentials) {
 | |
| 				var error = function (res) {
 | |
| 					alert(`Failed to initialize meeting: ${JSON.stringify(res)}`);
 | |
| 				};
 | |
| 
 | |
| 				var success = function () {
 | |
| 					requestAnimationFrame(controlUserInterface);
 | |
| 
 | |
| 					ZoomMtg.join({
 | |
| 						meetingNumber: new Number(credentials.meetingNumber),
 | |
| 						passWord: credentials.password,
 | |
| 						sdkKey: credentials.sdkKey,
 | |
| 						signature: credentials.signature,
 | |
| 						userName: credentials.userName,
 | |
| 						error: function (res) {
 | |
| 							alert(`Failed to join meeting: ${JSON.stringify(res)}`);
 | |
| 						}
 | |
| 					});
 | |
| 				};
 | |
| 
 | |
| 				var params = {
 | |
| 					audioPanelAlwaysOpen: false,
 | |
| 					disableCallOut: true,
 | |
| 					disableInvite: true,
 | |
| 					disableJoinAudio: false,
 | |
| 					disableRecord: true,
 | |
| 					disableReport: true,
 | |
| 					disableVoIP: false,
 | |
| 					leaveUrl: 'doesnotexist',
 | |
| 					isLockBottom: true,
 | |
| 					isShowJoiningErrorDialog: true,
 | |
| 					isSupportAV: true,
 | |
| 					isSupportBreakout: false,
 | |
| 					isSupportChat: '%_ALLOW_CHAT_%',
 | |
| 					isSupportCC: '%_ALLOW_CLOSED_CAPTIONS_%',
 | |
| 					isSupportPolling: false,
 | |
| 					isSupportQA: false,
 | |
| 					isSupportNonverbal: false,
 | |
| 					screenShare: false,
 | |
| 					sharingMode: 'both',
 | |
| 					showMeetingHeader: true,
 | |
| 					showPureSharingContent: false,
 | |
| 					videoDrag: true,
 | |
| 					videoHeader: true,
 | |
| 					meetingInfo: ['topic', 'host', 'participant'],
 | |
| 					error: error,
 | |
| 					success: success
 | |
| 				};
 | |
| 
 | |
| 				if (!ZoomMtg.checkSystemRequirements()) {
 | |
| 					alert('This system does not meet the necessary requirements for Zoom!');
 | |
| 				}
 | |
| 
 | |
| 				ZoomMtg.setZoomJSLib('https://source.zoom.us/2.10.1/lib', '/av');
 | |
| 				ZoomMtg.preLoadWasm();
 | |
| 				ZoomMtg.prepareWebSDK();
 | |
| 				ZoomMtg.init(params);
 | |
| 			}
 | |
| 
 | |
| 			function webMessageReceived(args) {
 | |
| 				if ('credentials' in args.data) {
 | |
| 					startMeeting(args.data.credentials);
 | |
| 				}
 | |
| 			}
 | |
| 
 | |
| 			window.addEventListener('unload', () => ZoomMtg.leaveMeeting({}));
 | |
| 			window.chrome.webview.addEventListener('message', webMessageReceived);
 | |
| 			window.chrome.webview.postMessage('credentials');
 | |
| 		</script>
 | |
| 	</body>
 | |
| </html> | 
