A powerful API for enhanced native experiences
Portals provides a powerful cross-platform API to expose native functionality for embedding rich web apps in a controlled manner, a robust web-to-native communication bridge—and coming soon, cloud services for real-time app updates and more. Interested in testing it out early? Make sure to drop us a note.
import IonicPortalsclass HomeViewController: UIViewController { override func loadView() { let portal = Portal( name: "myPortal", startDir: "web_app", initialContext: ["startingRoute": "/home"] ) self.view = PortalUIView(portal: portal) }}class ProfileFragment : PortalFragment { constructor() : super() constructor(portal: Portal?) : super(portal) companion object { @JvmStatic fun newInstance(): ProfileFragment { val portal: Portal = PortalBuilder("myPortal") .addPlugin(ShopAPIPlugin::class.java) .setInitialContext(mapOf("startingRoute" to "home")) .setStartDir("web_app") .create() return ProfileFragment(portal) } }}importShopAPIfrom'./ShopAPIPlugin';importPortalsfrom'@ionic/portals';constApp:React.FC<InitialContext>=()=>{const[sessionInfo, setSession]=useState(null);const[startingRoute, setInitialRoute]=useState(null);useEffect(()=>{const{ context, sessionInfo }=awaitPromise.all(Portals.getInitialContext());ShopAPI.getSessionInfo()););setInitialRoute(context.startingRoute);setSessionInfo(sessionInfo);},[]);// ...