---
title: WKUserContentController
framework: webkit
role: symbol
role_heading: Class
path: webkit/wkusercontentcontroller
---

# WKUserContentController

An object for managing interactions between JavaScript code and your web view, and for filtering content in your web view.

## Declaration

```swift
@MainActor class WKUserContentController
```

## Overview

Overview A WKUserContentController object provides a bridge between your app and the JavaScript code running in the web view. Use this object to do the following: Inject JavaScript code into webpages running in your web view. Install custom JavaScript functions that call through to your app’s native code. Specify custom filters to prevent the webpage from loading restricted content. Create and configure a WKUserContentController object as part of your overall web view setup. Assign the object to the userContentController property of your WKWebViewConfiguration object before creating your web view.

## Topics

### Adding and Removing Custom Scripts

- [addUserScript(_:)](webkit/wkusercontentcontroller/adduserscript(_:).md)
- [removeAllUserScripts()](webkit/wkusercontentcontroller/removealluserscripts().md)
- [userScripts](webkit/wkusercontentcontroller/userscripts.md)

### Adding and Removing Message Handlers

- [add(_:name:)](webkit/wkusercontentcontroller/add(_:name:).md)
- [add(_:contentWorld:name:)](webkit/wkusercontentcontroller/add(_:contentworld:name:).md)
- [addScriptMessageHandler(_:contentWorld:name:)](webkit/wkusercontentcontroller/addscriptmessagehandler(_:contentworld:name:).md)
- [removeScriptMessageHandler(forName:)](webkit/wkusercontentcontroller/removescriptmessagehandler(forname:).md)
- [removeScriptMessageHandler(forName:contentWorld:)](webkit/wkusercontentcontroller/removescriptmessagehandler(forname:contentworld:).md)
- [removeAllScriptMessageHandlers(from:)](webkit/wkusercontentcontroller/removeallscriptmessagehandlers(from:).md)
- [removeAllScriptMessageHandlers()](webkit/wkusercontentcontroller/removeallscriptmessagehandlers().md)
- [WKScriptMessageHandler](webkit/wkscriptmessagehandler.md)
- [WKScriptMessageHandlerWithReply](webkit/wkscriptmessagehandlerwithreply.md)

### Adding and Removing Content Rules

- [add(_:)](webkit/wkusercontentcontroller/add(_:).md)
- [remove(_:)](webkit/wkusercontentcontroller/remove(_:).md)
- [removeAllContentRuleLists()](webkit/wkusercontentcontroller/removeallcontentrulelists().md)
- [WKContentRuleList](webkit/wkcontentrulelist.md)

### Initializers

- [init(coder:)](webkit/wkusercontentcontroller/init(coder:).md)

### Instance Methods

- [add(_:name:contentWorld:)](webkit/wkusercontentcontroller/add(_:name:contentworld:).md)
- [removeBuffer(withName:contentWorld:)](webkit/wkusercontentcontroller/removebuffer(withname:contentworld:).md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCoding](foundation/nscoding.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSSecureCoding](foundation/nssecurecoding.md)
- [Sendable](swift/sendable.md)

## See Also

### Page content

- [WKContentRuleListStore](webkit/wkcontentruleliststore.md)
- [WKContentWorld](webkit/wkcontentworld.md)
- [WKFrameInfo](webkit/wkframeinfo.md)
- [WKSecurityOrigin](webkit/wksecurityorigin.md)
- [WKUserScript](webkit/wkuserscript.md)
