Virtual Agent iOS
AnthropicOfficialCreated by ZoomDistributed by Anthropic
- Skill
- Tool integration
- Software development
- MIT
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides the framework for embedding the Zoom Virtual Agent into native iOS applications. It focuses on utilizing WKWebView to load campaign URLs, configuring the environment through script injection, and establishing communication bridges between the web-based agent and the native Swift or Objective-C application layer. The integration covers lifecycle management, message handler registration for handoff flows, and URL routing policies to ensure consistent user experience across in-app and external browser navigation.
What it does
- Configures WKWebView to host Zoom Virtual Agent content.
- Injects configuration scripts to initialize the agent environment.
- Registers message handlers to manage exit, common, and handoff flows.
- Implements navigation delegates for custom URL routing.
- Provides patterns for bridging JavaScript events to native iOS code.
When to use it
- When embedding a Zoom Virtual Agent into a native iOS app.
- When you need to handle agent-to-native communication via message handlers.
- When defining custom routing policies for links triggered within the agent.
- When managing the lifecycle of a web-based agent within a native mobile container.
Advantages
- Enables seamless communication between web-based agents and native app logic.
- Provides structured patterns for handling complex handoff scenarios.
- Supports both Swift and Objective-C implementation environments.
- Ensures consistent behavior for URL navigation and agent lifecycle management.
Usage examples
- “How do I register a message handler for the Zoom Virtual Agent in my iOS app?”
- The agent will guide you through setting up a WKScriptMessageHandler in your WKWebView configuration to intercept and process messages sent from the virtual agent.
- “Show me how to inject the zoomCampaignSdkConfig into my WKWebView.”
- The agent provides the specific WKUserScript implementation required to inject the configuration before the web content loads.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/anthropics/virtual-agent-ios/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip virtual-agent-ios.zip -d .agents/skills
Documentation by Zoom
Zoom Virtual Agent - iOS
Official docs:
Quick Links
Integration Model
Load campaign URL in
WKWebView.Inject
window.zoomCampaignSdkConfigusingWKUserScript.Register message handlers for exit/common/handoff flows.
Handle URL behavior in navigation delegates (
in-app,SFSafariViewController, or system browser).
Hard Guardrails
Register scripts and handlers before web interaction.
Handle iOS 14.5+ download behavior where needed.
Keep deprecated
openURLcommand support as fallback only.
Chaining
Product-level patterns: ../SKILL.md
Contact Center mobile scope: ../../contact-center/ios/SKILL.md
Files
- ATTRIBUTION.mdAdded by AutoGineer990 B
- LICENSELicence file added by AutoGineer1.1 KiB
- SKILL.md1.4 KiB
- concepts/webview-lifecycle.md451 B
- examples/js-bridge-patterns.md936 B
- references/ios-reference-map.md641 B
- troubleshooting/common-issues.md583 B
examples/js-bridge-patterns.md
iOS JS Bridge Patterns
Inject Exit and Common Handlers
let exitHandlerScript = """
window.addEventListener('zoomCampaignSdk:ready', () => {
if (window.zoomCampaignSdk) {
window.zoomCampaignSdk.native = {
exitHandler: { handle: function() { window.webkit.messageHandlers.zoomLiveSDKMessageHandler.postMessage('close_web_vc'); } },
commonHandler: { handle: function(e) { window.webkit.messageHandlers.commonMessageHandler.postMessage(JSON.stringify(e)); } }
};
}
});
"""Inject Support Handoff
let handoffScript = """
window.addEventListener('support_handoff', (e) => {
window.webkit.messageHandlers.support_handoff.postMessage(JSON.stringify(e.detail));
});
"""URL Handling Policy
WKNavigationActionPolicyAllowfor trusted in-app routes.UIApplication.openURLfor system-browser policy.Optional in-app browser route (for example
SFSafariViewController).
Requirements and compatibility
Written for: Claude Code, Claude apps
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Claude Code frontmatter
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- Zoom
- Publisher
- Anthropic (Official)
- Distributed by
- Anthropic
- Source
- anthropics/knowledge-work-plugins · partner-built/zoom-plugin/skills/virtual-agent/ios · commit e050c2e
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from partner-built/zoom-plugin/LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Zoom or Anthropic.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download virtual-agent-ios.zip