Install
$ agentstack add skill-ariadoss-superskills-swiftui-webkit ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README — it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming — see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps — measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
WebKit Integration for SwiftUI
Embed and control web content in SwiftUI using WebView and WebPage.
When This Skill Activates
Use this skill when the user needs to:
- Display web content within SwiftUI applications
- Load URLs, HTML strings, or data blobs
- Execute JavaScript from SwiftUI
- Control navigation (back, forward, reload)
- Customize web view behavior
- Capture snapshots or generate PDFs
- Intercept navigation requests
- Configure private browsing or custom user agents
API Availability
| API | Minimum Version | Notes | |-----|----------------|-------| | WebView | iOS/macOS 26 | Main SwiftUI web view | | WebPage | iOS/macOS 26 | Observable web page controller | | WebPage.Configuration | iOS/macOS 26 | Configuration object | | WKContentWorld | iOS 14 / macOS 11 | JavaScript execution worlds | | WKSnapshotConfiguration | iOS 11 / macOS 10.13 | Snapshot capture |
Quick Start
Minimal — Just a URL
import SwiftUI
import WebKit
struct SimpleWebView: View {
var body: some View {
WebView(url: URL(string: "https://apple.com")!)
}
}
Full Control — with WebPage
import SwiftUI
import WebKit
struct ControlledWebView: View {
@State private var page = WebPage()
var body: some View {
VStack {
HStack {
Button("Back") { page.goBack() }
.disabled(!page.canGoBack)
Button("Forward") { page.goForward() }
.disabled(!page.canGoForward)
Button("Reload") { page.reload() }
}
WebView(page)
}
.onAppear {
page.load(URLRequest(url: URL(string: "https://apple.com")!))
}
}
}
JavaScript Execution
// Execute after page loads
let result = try await page.callJavaScript("document.title")
// Inject script
await page.evaluateJavaScript("document.body.style.backgroundColor = 'red'")
Wait for page load before executing JavaScript — check page.isLoading or observe load events.
Navigation Control
page.load(URLRequest(url: url))
page.loadHTMLString("Hello", baseURL: nil)
page.goBack()
page.goForward()
page.reload()
page.stopLoading()
Critical Mistakes to Avoid
| # | Mistake | Fix | |---|---------|-----| | 1 | Using WebView(url:) when you need navigation control | Use WebPage for any interactivity | | 2 | Missing import WebKit | Required alongside import SwiftUI | | 3 | Not observing navigation events | Observe page.isLoading and navigation callbacks | | 4 | Executing JavaScript before DOM is ready | Wait for page load completion | | 5 | Using persistent data store in private mode | Use ephemeral data store for private browsing | | 6 | String interpolation in JavaScript | Sanitize all user input before injecting into JS |
Review Checklist
- [ ]
import WebKitpresent alongsideimport SwiftUI - [ ] Using
WebPagefor any navigation or JavaScript needs - [ ] JavaScript execution waits for page load
- [ ] User input sanitized before JavaScript injection
- [ ] Navigation events observed for loading states
- [ ] iOS/macOS 26+ requirement documented
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: ariadoss
- Source: ariadoss/superskills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.