Latest 0.4.0
Homepage https://github.com/nixzhu/AppClip
License MIT
Platforms ios 8.0, requires ARC
Authors


Create Web Clip for App.

Usage

As the demo IcePack shows:

  1. Define a URL Scheme in Info.plist of your app

    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLName</key>
            <string>com.nixWork.IcePack</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>icepack</string>
            </array>
        </dict>
    </array>
  2. Create AppClip for a specific URL Scheme

    @IBAction func createAppClip(_ sender: UIButton) {
        AppClip.create(title: "First View", icon: #imageLiteral(resourceName: "icon_circle"), urlScheme: "icepack://com.nixWork.IcePack/tab1")
    }
  3. Handle open URL

    func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
        guard let tabVC = window?.rootViewController as? UITabBarController else { return false }
        switch url.lastPathComponent {
        case "tab1":
            tabVC.selectedIndex = 0
        case "tab2":
            tabVC.selectedIndex = 1
        default:
            break
        }
        return true
    }

It’s done!

Implementation

When user tap the button in your app to perform the action createAppClip(_:), AppClip will start a HTTP server, then open Safari to send a HTTP request.

The server will respond a 301 redirection, but the location is a data url.

This data url show a web page, and guide user to add it to the Home Screen.

When user tap the web clip in Home Screen, the JavaScript Code in it will perform to request the URL Scheme, it will open your app.

Installation

Carthage

github "nixzhu/AppClip"

CocoaPods

pod 'AppClip'

Contact

NIX @nixzhu

License

AppClip is available under the MIT license. See the LICENSE file for more info.

Latest podspec

{
    "name": "AppClip",
    "version": "0.4.0",
    "summary": "Create Web Clip for App.",
    "description": "Create Web Clip for App from App.",
    "homepage": "https://github.com/nixzhu/AppClip",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "nixzhu": "[email protected]"
    },
    "social_media_url": "https://twitter.com/nixzhu",
    "platforms": {
        "ios": "8.0"
    },
    "source": {
        "git": "https://github.com/nixzhu/AppClip.git",
        "tag": "0.4.0"
    },
    "source_files": "AppClip/*.swift",
    "requires_arc": true,
    "pushed_with_swift_version": "3.0"
}

Pin It on Pinterest

Share This