All Projects → ArtSabintsev → Freedom

ArtSabintsev / Freedom

Licence: mit
The Freedom to Open URLs in Third-Party Browsers on iOS with Custom UIActivity Subclasses.

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Freedom

Dikit
Dependency Injection Framework for Swift, inspired by KOIN.
Stars: ✭ 77 (-9.41%)
Mutual labels:  cocoapods, carthage, swift-package-manager
Sica
🦌 Simple Interface Core Animation. Run type-safe animation sequencially or parallelly
Stars: ✭ 980 (+1052.94%)
Mutual labels:  cocoapods, carthage, swift-package-manager
Preferences
⚙ Add a preferences window to your macOS app in minutes
Stars: ✭ 898 (+956.47%)
Mutual labels:  cocoapods, carthage, swift-package-manager
Defaults
Swifty and modern UserDefaults
Stars: ✭ 734 (+763.53%)
Mutual labels:  cocoapods, carthage, swift-package-manager
Ublock
uBlock: a fast, lightweight, and lean blocker for Chrome, Firefox, and Safari.
Stars: ✭ 8,075 (+9400%)
Mutual labels:  chrome, firefox, safari
Statusalert
Display Apple system-like self-hiding status alerts. It is well suited for notifying user without interrupting user flow in iOS-like way.
Stars: ✭ 809 (+851.76%)
Mutual labels:  cocoapods, carthage, swift-package-manager
Bfkit Swift
BFKit-Swift is a collection of useful classes, structs and extensions to develop Apps faster.
Stars: ✭ 963 (+1032.94%)
Mutual labels:  cocoapods, carthage, swift-package-manager
Sablurimageview
You can use blur effect and it's animation easily to call only two methods.
Stars: ✭ 538 (+532.94%)
Mutual labels:  cocoapods, carthage, swift-package-manager
Wstagsfield
An iOS text field that represents tags, hashtags, tokens in general.
Stars: ✭ 1,013 (+1091.76%)
Mutual labels:  cocoapods, carthage, swift-package-manager
Sketchkit
A lightweight auto-layout DSL library for iOS & tvOS.
Stars: ✭ 40 (-52.94%)
Mutual labels:  cocoapods, carthage, swift-package-manager
Zephyr
Effortlessly synchronize UserDefaults over iCloud.
Stars: ✭ 722 (+749.41%)
Mutual labels:  cocoapods, carthage, swift-package-manager
Automator
Various Automator and AppleScript workflow and scripts for simplifying life
Stars: ✭ 68 (-20%)
Mutual labels:  chrome, firefox, safari
Guitar
A Cross-Platform String and Regular Expression Library written in Swift.
Stars: ✭ 641 (+654.12%)
Mutual labels:  cocoapods, carthage, swift-package-manager
Loadingshimmer
An easy way to add a shimmering effect to any view with just one line of code. It is useful as an unobtrusive loading indicator.
Stars: ✭ 1,180 (+1288.24%)
Mutual labels:  cocoapods, carthage, swift-package-manager
Etaoin
Pure Clojure Webdriver protocol implementation
Stars: ✭ 599 (+604.71%)
Mutual labels:  chrome, firefox, safari
Swiftlyext
SwiftlyExt is a collection of useful extensions for Swift 3 standard classes and types 🚀
Stars: ✭ 31 (-63.53%)
Mutual labels:  cocoapods, carthage, swift-package-manager
Openssl
OpenSSL package for SPM, CocoaPod, and Carthage, for iOS and macOS
Stars: ✭ 515 (+505.88%)
Mutual labels:  cocoapods, carthage, swift-package-manager
Swiftframeworktemplate
A template for new Swift iOS / macOS / tvOS / watchOS Framework project ready with travis-ci, cocoapods, Carthage, SwiftPM and a Readme file
Stars: ✭ 527 (+520%)
Mutual labels:  cocoapods, carthage, swift-package-manager
Fontblaster
Programmatically load custom fonts into your iOS and tvOS app.
Stars: ✭ 1,000 (+1076.47%)
Mutual labels:  cocoapods, carthage, swift-package-manager
Cameramanager
Simple Swift class to provide all the configurations you need to create custom camera view in your app
Stars: ✭ 1,130 (+1229.41%)
Mutual labels:  cocoapods, carthage, swift-package-manager

Freedom 🦅

The Freedom to Open URLs in Third-Party Browsers on iOS with Custom UIActivity Subclasses.

Swift Support

CocoaPods Carthage Compatible SwiftPM Compatible


About

Freedom enables your app to open URLs in third-party browsers that your users have installed on their device.

Currently Supported

Screenshot

Installation Instructions

Swift Version Branch Name Will Continue to Receive Updates?
5.1+ master Yes
5.0 swift5.0 No
4.2 swift4.2 No
3.2 swift4.1 No
3.2 swift3.2 No
3.1 swift3.1 No

CocoaPods

pod 'Freedom' # Swift 5.1+
pod 'Freedom', :git => 'https://github.com/ArtSabintsev/Freedom.git', :branch => 'swift5.0' # Swift 5.0
pod 'Freedom', :git => 'https://github.com/ArtSabintsev/Freedom.git', :branch => 'swift4.2' # Swift 4.2
pod 'Freedom', :git => 'https://github.com/ArtSabintsev/Freedom.git', :branch => 'swift4.1' # Swift 4.1
pod 'Freedom', :git => 'https://github.com/ArtSabintsev/Freedom.git', :branch => 'swift3.2' # Swift 3.2
pod 'Freedom', :git => 'https://github.com/ArtSabintsev/Freedom.git', :branch => 'swift3.1' # Swift 3.1

Carthage

github "ArtSabintsev/Freedom" // Swift 5.1+
github "ArtSabintsev/Freedom", "swift5.0" // Swift 5.0
github "ArtSabintsev/Freedom", "swift4.2" // Swift 4.2
github "ArtSabintsev/Freedom", "swift4.1" // Swift 4.1
github "ArtSabintsev/Freedom", "swift3.2" // Swift 3.2
github "ArtSabintsev/Freedom", "swift3.1" // Swift 3.1

Swift Package Manager

.Package(url: "https://github.com/ArtSabintsev/Freedom.git", majorVersion: 2)

Usage

Open your Info.plist file, and add the following URL schemes to the LSApplicationQueriesSchemes key:

<key>LSApplicationQueriesSchemes</key>
<array>
  <string>brave</string>
  <string>dolphin</string>
  <string>firefox</string>
  <string>firefox-focus</string>
  <string>googlechrome</string>
</array>

Add the following code to some actionable/tappable element in your project. In this example, I am using an IBAction from a UIButton.

@IBAction func openURL(_ sender: UIButton) {

       // A Sample URL that just happens to be my personal website.
       let url = URL(string: "http://www.sabintsev.com")!

       // Enable Debug Logs (disabled by default)
       Freedom.debugEnabled = true

       // Fetch activities for Safari and all third-party browsers supported by Freedom (see screenshot).
       let activities = Freedom.browsers()

       // Alternatively, one could select a specific browser (or browsers).
       // let activities = Freedom.browsers([.chrome])
       let vc = UIActivityViewController(activityItems: [url], applicationActivities: activities)

       present(vc, animated: true, completion: nil)
   }

Notes

Even if you enable Freedom to support all browsers via Freedom.browsers(), only the browsers installed on your users device will be visible to the them in the share sheet (i.e., UIActivityViewController). Therefore, it is beneficial to all of your users to initialize Freedom with all supported browsers.

Created and maintained by

Arthur Ariel Sabintsev

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].