Config plugin to add a Safari Extension to your React Native iOS app
npm install react-native-safari-extension
An Expo Config Plugin that allows you to add a Safari Extension to your iOS apps. This plugin allows you to manage your extension files outside of the ios directory with the help of Expo Prebuild. It will continuously generate your native project with your extension files included.
> Note Not sure what Safari Extensions are? Check out Apple's Safari Extension documentation to learn more.
- Basic Workflow Setup Guide
- Experimental Workflow Setup Guide
> Note: Not sure which workflow to use? Check out the Workflows section below.
There are two workflows for using this plugin:
Build your own extension using HTML, CSS, and vanilla JavaScript.
Render React Native web inside of your extension. This uses Expo web and Metro to output your React Native compononents inside of the extension popup. You can use Fast Refresh to see your changes in real time.
If you are building a simple extension, the Basic Workflow is probably the best option. If it's more complex, you may want to use the Experimental Workflow (it's also more fun).
| Feature / Workflow | Experimental Workflow | Basic Workflow |
| ------------------------------ | --------------------- | -------------- |
| Manage files outside of ios/ | ✅ | ✅ |
| Expo Prebuild | ✅ | ✅ |
| Fast Refresh | ✅ | |
| Expo Web | ✅ | |