cancel
Showing results forĀ 
Search instead forĀ 
Did you mean:Ā 
Important updates from Zoom Support:
  • Starting February 3, 2025, Zoom Phone customers must add their phone numbers to an approved 10DLC campaign in order to use SMS/MMS capabilities on their numbers.

  • Introducing more live support options! More Zoom customers now have access to live agent chat support. Sign in and visit our Contact Support page to see all your available support options. Weā€™re here to help!

zoom does not work with next js 15

ahmed_anter
Newcomer
Newcomer

I am experiencing an issue with the Zoom Web SDK in my Next.js application. Upon initializing the Zoom meeting, the application displays a black screen.any help or starter kit for next js 15 ?
--------------------------------------------------------------
this is my console 
[Fast Refresh] rebuilding
zoomus-websdk.umd.min.js:2 success load webim
zoomus-websdk.umd.min.js:2 success load jsmedia
zoomus-websdk.umd.min.js:2 pre load wasm success: https://source.zoom.us/3.10.0/lib/av/audio.simd.wasm
zoomus-websdk.umd.min.js:2 pre load wasm success: https://source.zoom.us/3.10.0/lib/av/video.mtsimd.wasm
4
-------------------------------

"dependencies": {
"@zoom/meetingsdk": "^3.10.0",
"next": "15.1.3",
"react": "^19.0.0",
"react-dom": "^19.0.0"
},
-------------------------
"use client";
import "./App.css";
import React, { useEffect, useState } from "react";
import Script from "next/script";
import "@zoom/meetingsdk/dist/css/bootstrap.css";
import "@zoom/meetingsdk/dist/css/react-select.css";

function Welcome() {
  const [ZoomMtg, setZoomMtg] = useState<any>(null);

  const authEndpoint = ""; // Replace with your endpoint
  const sdkKey = ""; // Replace with your Zoom SDK Key
  const meetingNumber = ""; // Replace with your meeting number
  const passWord = ""; // Replace with your meeting password
  const role = 0; // 0 = Attendee, 1 = Host
  const userName = "React";
  const leaveUrl = "http://localhost:3000"; // Redirect after leaving the meeting

  useEffect(() => {
    import("@zoom/meetingsdk")
      .then(({ ZoomMtg }) => {
        ZoomMtg.preLoadWasm();
        ZoomMtg.prepareWebSDK();
        setZoomMtg(ZoomMtg);
      })
      .catch((error) => console.error("Zoom SDK Error:", error));
  }, []);

  const getSignature = async () => {
    if (!ZoomMtg) return;
    try {
      const response = await fetch(authEndpoint, {
        method: "POST",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify({ meetingNumber, role }),
      });
      const data = await response.json();
      startMeeting(data.signature);
    } catch (error) {
      console.error("Error fetching signature:", error);
    }
  };

  const startMeeting = (signature: string) => {
    if (!ZoomMtg) return;

    document.getElementById("zmmtg-root")!.style.display = "block";

    ZoomMtg.init({
      leaveUrl,
      success: () => {
        ZoomMtg.join({
          signature,
          sdkKey,
          meetingNumber,
          passWord,
          userName,
          success: (success: unknown) => console.log("Joined:", success),
          error: (error: unknown) => console.error("Join Error:", error),
        });
      },
      error: (error: unknown) => console.error("Init Error:", error),
    });
  };

  return (
    <>
      <Script
        src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"
        strategy="beforeInteractive"
      />
      <div>
        <div id="zmmtg-root"></div>
        <div id="aria-notify-area"></div>
        <main>
          <h1>Zoom Meeting</h1>
          <button onClick={getSignature}>Join Meeting</button>
        </main>
      </div>
    </>
  );
}

export default Welcome;

 

1 REPLY 1

ahmed_anter
Newcomer
Newcomer

????