{"id":18825389,"url":"https://github.com/outsystems/osinappbrowserlib-ios","last_synced_at":"2025-07-06T00:08:21.892Z","repository":{"id":249977148,"uuid":"803764041","full_name":"OutSystems/OSInAppBrowserLib-iOS","owner":"OutSystems","description":"OutSystems-owned repository for the InAppBrowser plugin's iOS library.","archived":false,"fork":false,"pushed_at":"2025-06-12T10:40:43.000Z","size":8295,"stargazers_count":0,"open_issues_count":2,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-12T10:42:54.535Z","etag":null,"topics":["snyk-mobile"],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OutSystems.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-05-21T10:46:58.000Z","updated_at":"2025-04-03T14:26:18.000Z","dependencies_parsed_at":"2025-04-02T14:34:23.894Z","dependency_job_id":null,"html_url":"https://github.com/OutSystems/OSInAppBrowserLib-iOS","commit_stats":null,"previous_names":["outsystems/osinappbrowserlib-ios"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/OutSystems/OSInAppBrowserLib-iOS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OutSystems%2FOSInAppBrowserLib-iOS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OutSystems%2FOSInAppBrowserLib-iOS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OutSystems%2FOSInAppBrowserLib-iOS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OutSystems%2FOSInAppBrowserLib-iOS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OutSystems","download_url":"https://codeload.github.com/OutSystems/OSInAppBrowserLib-iOS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OutSystems%2FOSInAppBrowserLib-iOS/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263828725,"owners_count":23516790,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["snyk-mobile"],"created_at":"2024-11-08T00:59:18.288Z","updated_at":"2025-07-06T00:08:21.880Z","avatar_url":"https://github.com/OutSystems.png","language":"Swift","readme":"# OSInAppBrowserLib\n\nThe `OSInAppBrowserLib-iOS` is a library built using `Swift` that provides a web browser view to load a web page within a Mobile Application. It behaves as a standard web browser and is useful to load untrusted content without risking your application's security.\n\nThe `OSIABEngine` structure provides the main features of the Library, which are 3 different ways to open a URL:\n- using an External Browser;\n- using a System Browser;\n- using a Web View.\n\nEach is detailed in the following sections.\n\n## Index\n\n- [Motivation](#motivation)\n- [Usage](#usage)\n- [Methods](#methods)\n    - [Open a URL in an External Browser](#open-a-url-in-an-external-browser)\n    - [Open a URL in a System Browser](#open-a-url-in-a-system-browser)\n    - [Open a URL in a Web View](#open-a-url-in-a-web-view)\n\n## Motivation\n\nThis library is to be used by the InAppBrowser Plugin for [OutSystems' Cordova Plugin](https://github.com/OutSystems/cordova-outsystems-inappbrowser) and [Ionic's Capacitor Plugin](https://github.com/ionic-team/capacitor-os-inappbrowser). \n\n## Usage\n\nThe library is available on CocoaPods as `OSInAppBrowserLib`. The following is an example of how to insert it into a Cordova plugin (through the `plugin.xml` file).\n\n```xml\n\u003cpodspec\u003e\n    \u003cconfig\u003e\n        \u003csource url=\"https://cdn.cocoapods.org/\"/\u003e\n    \u003c/config\u003e\n    \u003cpods use-frameworks=\"true\"\u003e\n        ...\n        \u003cpod name=\"OSInAppBrowserLib\" spec=\"${version to use}\" /\u003e\n        ...\n    \u003c/pods\u003e\n\u003c/podspec\u003e\n```\n\nIt can also be included as a dependency on other podspecs.\n\n```ruby\nPod::Spec.new do |s|\n  ...\n  s.dependency 'OSInAppBrowserLib', '${version to use}'\n  ...\nend\n```\n\n## Methods\n\nAs mentioned before, the library offers the `OSIABEngine` structure that provides the following methods to interact with:\n\n### Open a URL in an External Browser\n\n```swift\nfunc openExternalBrowser(_ url: URL, routerDelegate: ExternalBrowser, _ completionHandler: @escaping (ExternalBrowser.ReturnType) -\u003e Void)\n```\n\nUses the parameter `routerDelegate` - an object that offers an External Browser interface - to open the parameter `url`. The method is composed of the following input parameters:\n- **url**: the URL for the web page to be opened.\n- **routerDelegate**: The External Browser interface that will open the URL. Its return type should be `Bool`.\n- **completionHandler**: The callback with the result of opening the URL with the External Browser interface.\n\n### Open a URL in a System Browser\n\n```swift\nfunc openSystemBrowser(_ url: URL, routerDelegate: SystemBrowser, _ completionHandler: @escaping (SystemBrowser.ReturnType) -\u003e Void)\n```\n\nUses the parameter `routerDelegate` - an object that offers a System Browser interface - to open the parameter `url`. The method is composed of the following input parameters:\n- **url**: the URL for the web page to be opened.\n- **routerDelegate**: The System Browser interface that will open the URL. Its return type should be `UIViewController` or a subclass. The library provides an `OSIABSafariViewControllerRouterAdapter` class that uses `SFSafariViewController` to open it. \n- **completionHandler**: The callback with the result of opening the URL with the System Browser interface.\n\n### Open a URL in a Web View\n\n```swift\nfunc openWebView(_ url: URL, routerDelegate: WebView, _ completionHandler: @escaping (WebView.ReturnType) -\u003e Void)\n```\n\nUses the parameter `routerDelegate` - an object that offers a Web View interface - to open the parameter `url`. The method is composed of the following input parameters:\n- **url**: the URL for the web page to be opened.\n- **routerDelegate**: The Web View interface that will open the URL. Its return type should be `UIViewController` or a subclass. The library provides an `OSIABWebViewRouterAdapter` class that uses `WKWebView` to open it. \n- **completionHandler**: The callback with the result of opening the URL with the Web View interface.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foutsystems%2Fosinappbrowserlib-ios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foutsystems%2Fosinappbrowserlib-ios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foutsystems%2Fosinappbrowserlib-ios/lists"}