Web SDK Support for deferred load and unloading, for SPA sites

Is your feature request related to a problem? Please describe.

I’ve been working on getting the web sdk working inside a Single Page Application style site. Because the ZoomMtg object creates the #zmmtg-root element when it’s loaded, I made it only load the SDK on the vue-routed page which needs it.

I have it destroying/unloading the ZoomMtg object when the user navigates away, but when they navigate back again, there are some issues with Object.defineProperty things that the zoomus-websdk.umd.min.js file applies.

These are Array.prototype.uniquelize, Array.prototype.union, and Array.prototype.minus.

Describe the solution you’d like
Allow deferred activation of the SDK functions, so I can load the sdk with my other javascript without it taking over the window, and also unload it. This would mean it could be used as part of a single page app.

Describe alternatives you’ve considered

  1. Easiest: Match other is-this-set checks in the same file , e.g. Array.prototype.union || Object.defineProperty(Array.prototype,"union"
  2. Better: Mark all of the properties as configurable, and add a ZoomMtg.unload to unset them all, among other things.

Additional context
This is a requested re-post of this thread on the Web SDK forum, including a quick regex fix, and some more detail on the file locations etc.