zoom-virtual-agent-ios

Integrates Zoom Virtual Agent into iOS apps via WKWebView script injection and message handlers.

5.3k|765|Updated Mar 4, 2026
One-click install
npx skills add https://github.com/openai/plugins --skill zoom-virtual-agent-ios
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: zoom-virtual-agent-ios
Source: https://github.com/openai/plugins/tree/main/plugins/zoom/skills/virtual-agent/ios
Command: npx skills add https://github.com/openai/plugins --skill zoom-virtual-agent-ios

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Embedding Zoom Virtual Agent chat campaigns in a native iOS app requires correctly wiring WKWebView script injection, JavaScript message handlers, support_handoff relay, and URL routing policies, which is error-prone without a clear integration map.

Core Features & Use Cases

  • WKWebView Bridge Setup: Inject window.zoomCampaignSdkConfig via WKUserScript and register exit, common, and handoff message handlers before page load.
  • Support Handoff Relay: Forward support_handoff events from the web campaign to native Swift/Objective-C handlers.
  • URL Routing Policies: Branch navigation decisions in decidePolicyForNavigationAction across in-app, SFSafariViewController, and system browser routes.
  • Use Case: An iOS developer adding a Zoom Virtual Agent support chat to their app uses this Skill to implement the JS bridge, handle handoff events, and troubleshoot handlers that fail to trigger.

Quick Start

Use the zoom-virtual-agent-ios skill to set up the WKWebView bridge with exit and support_handoff message handlers for my campaign URL.

Frequently Asked Questions about zoom-virtual-agent-ios

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I integrate Zoom Virtual Agent into an iOS app?

Load the campaign URL in a WKWebView, inject window.zoomCampaignSdkConfig using WKUserScript, and register message handlers for exit, common, and handoff flows. Handle URL behavior in navigation delegates for in-app, SFSafariViewController, or system browser routes.

How to handle support_handoff events in WKWebView?

Add a JavaScript event listener for support_handoff that posts the event detail to a native message handler via window.webkit.messageHandlers. Process the payload in userContentController:didReceiveScriptMessage: on the native side.

Why are my WKWebView message handlers not triggering?

Message handlers fail when WKUserScript and handlers are registered after page load, or when handler names do not exactly match the injected JavaScript references. Register everything before navigation begins.

Does WKWebView support file downloads on iOS?

WKWebView download behavior requires iOS 14.5 or later support paths. Apps targeting earlier versions need alternative handling for download scenarios in the campaign flow.

Should I use the openURL command or navigation delegates for link routing?

Treat the deprecated openURL command as a fallback only. Prefer DOM links and window.open with delegate-driven routing in decidePolicyForNavigationAction, branching explicitly for _blank and external URL cases.