Git Product home page Git Product logo

evernote-ios-x-callback-url's Introduction

Evernote iOS x-callback-url support

Evernote iOS app started supporting x-callback-url from version 7.5. Some apps are already using this integration, like Launch Center Pro and Drafts 4.
Here's an example in Launch Center Pro
Launch Center Pro Demo
Phillip Gruneich wrote a great article about x-callback-url support in Evernote iOS and wonderful things we can accomplish with this. I recommend you read it here.
This repo serves as the documentation. Feel free to file a bug or a feature request on this Github repo.

Overview

Extensions in iOS 8 and OS X Yosemite makes integrations between apps easier than ever. But according to WWDC 2014, URL schemes is still the recommended way to do inter-app communication. x-callback-url is a popular solution in the iOS community and there're a lot of apps that's adopting it.

Scheme

Following the specs, the x-callback scheme in Evernote iOS is

evernote://x-callback-url/[action]?[action parameters]&[x-callback parameters]

You can integrate with Evernote iOS app with literally one line of Objective-C code, for example:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"evernote://x-callback-url/new-note?type=text&title=EC%204&text=this%20is%20a%20great%20day"]];

Or Swift, if you like

UIApplication.sharedApplication().openURL(NSURL(string: "evernote://x-callback-url/new-note?type=text&title=EC%204&text=this%20is%20a%20great%20day"))

Note: the parameters are URL encoded

Protocol

x-callback-url protocol is defined in http://x-callback-url.com/

Actions

/new-note

Create a new note

Parameters

  • type optional STRING
    Can be one of {text, html, camera, photos, reminder, list, audio, clipboard, lastphoto}. Check out the URL scheme examples to understand the differences between those types.

  • title optional STRING
    Title of the new note

  • text optional STRING
    Text to append to the note
    When note type is html, make sure the text is sanitized html string and no external resources
    When note type is text, camera, photos, list and audio, only plain text is supported
    Other note type this parameter is ignored

  • longtitude optional DOUBLE
    Longtitude value of the new note

  • latitude optional DOUBLE
    Latitude value of the new note

  • reminderdate optional DOUBLE
    The due date of the new reminder, expressed in number of seconds from the first instant of 1 January 1970, GMT. Use to set an absolute due date for the reminder. You can get the value from[NSDate timeIntervalSince1970]

/new-clipped-note

Create a new note from URL in clipboard

Parameters

  • url required STRING
    The URL to clip

x-callback parameters

This is optional but recommended for better user experience

x-callback-url defines several parameters with specific purposes, all of which are optional. These parameters should be passed as query args in the URL, in the format key1=value1&key2=value2. All values should be URL encoded strings. You should use these parameters to provide callback URLs of your app, and handle success/cancel/error completion cases in the app delegate.

  • x-success : URL to open on completion of saving a note. If not provided, the user will stay in the Evernote app after the action is successfully completed.

  • x-cancel : URL to open if the requested action is cancelled by the user. If not provided, the user will stay in the Evernote app after the action is cancelled.

  • x-error : URL to open if the requested action generates an error or failed to complete. In such case, Evernote app will report the failure to the user, log the error in App Log (On Evernote iOS, Settings->Support->Activity Log) and return to the source app. If not present, user will stay in the Evernote app.

Examples

Check out URL scheme examples

evernote-ios-x-callback-url's People

Contributors

everic avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.