├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── demo ├── app │ ├── App_Resources │ │ ├── Android │ │ │ ├── app.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── AndroidManifest.xml │ │ │ │ └── res │ │ │ │ ├── drawable-hdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ │ ├── drawable-ldpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ │ ├── drawable-mdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ │ ├── drawable-nodpi │ │ │ │ ├── add.png │ │ │ │ ├── beer.png │ │ │ │ ├── eye.png │ │ │ │ └── splash_screen.xml │ │ │ │ ├── drawable-xhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ │ ├── drawable-xxxhdpi │ │ │ │ ├── background.png │ │ │ │ ├── icon.png │ │ │ │ └── logo.png │ │ │ │ ├── values-v21 │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ │ ├── values │ │ │ │ ├── colors.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ │ └── xml │ │ │ │ └── shortcuts.xml │ │ └── iOS │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── icon-29.png │ │ │ │ ├── icon-29@2x.png │ │ │ │ ├── icon-29@3x.png │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-40@3x.png │ │ │ │ ├── icon-50.png │ │ │ │ ├── icon-50@2x.png │ │ │ │ ├── icon-57.png │ │ │ │ ├── icon-57@2x.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-60@3x.png │ │ │ │ ├── icon-72.png │ │ │ │ ├── icon-72@2x.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ └── icon-83.5@2x.png │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.launchimage │ │ │ │ ├── Contents.json │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Default-667h@2x.png │ │ │ │ ├── Default-736h@3x.png │ │ │ │ ├── Default-Landscape.png │ │ │ │ ├── Default-Landscape@2x.png │ │ │ │ ├── Default-Landscape@3x.png │ │ │ │ ├── Default-Portrait.png │ │ │ │ ├── Default-Portrait@2x.png │ │ │ │ ├── Default.png │ │ │ │ └── Default@2x.png │ │ │ ├── LaunchScreen.AspectFill.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-AspectFill.png │ │ │ │ └── LaunchScreen-AspectFill@2x.png │ │ │ └── LaunchScreen.Center.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchScreen-Center.png │ │ │ │ └── LaunchScreen-Center@2x.png │ │ │ ├── Info.plist │ │ │ ├── LaunchScreen.storyboard │ │ │ ├── Podfile │ │ │ ├── beer.png │ │ │ ├── build.xcconfig │ │ │ └── eye.png │ ├── app-root.xml │ ├── app.css │ ├── app.ts │ ├── beer-page.ts │ ├── beer-page.xml │ ├── bundle-config.ts │ ├── main-page.ts │ ├── main-page.xml │ ├── main-view-model.ts │ ├── res │ │ ├── cheers_to_beers.jpg │ │ └── telerik-logo.png │ └── tests │ │ └── tests.js ├── karma.conf.js ├── nativescript.config.ts ├── package-lock.json ├── package.json └── tsconfig.json ├── media ├── Android.png └── iOS.png ├── publish ├── pack.sh ├── package.json └── publish.sh ├── src ├── .npmignore ├── app-shortcuts.android.ts ├── app-shortcuts.common.ts ├── app-shortcuts.ios.ts ├── index.d.ts ├── package-lock.json ├── package.json ├── references.d.ts └── tsconfig.json └── tslint.json /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | .vscode 3 | .DS_Store 4 | *.js 5 | *.log 6 | *.map 7 | *.tgz 8 | !src/angular/*.js 9 | !demo/karma.conf.js 10 | !demo/app/tests/*.js 11 | demo/*.d.ts 12 | src/*.d.ts 13 | !src/index.d.ts 14 | !src/references.d.ts 15 | demo/lib 16 | demo/platforms 17 | node_modules 18 | demo/hooks/ 19 | publish/package/ -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | matrix: 2 | include: 3 | - stage: "Lint" 4 | language: node_js 5 | os: linux 6 | node_js: "10" 7 | script: cd src && npm run ci.tslint 8 | - stage: "WebPack, Build" 9 | os: osx 10 | env: 11 | - WebPack="iOS" 12 | osx_image: xcode10.2 13 | language: node_js 14 | node_js: "10" 15 | jdk: oraclejdk8 16 | before_script: pod repo update 17 | script: cd demo && npm run build.plugin && npm i && tns build ios --bundle --env.uglify 18 | - language: android 19 | env: 20 | - BuildAndroid="28" 21 | os: linux 22 | dist: trusty 23 | jdk: oraclejdk8 24 | before_install: nvm install 10 25 | script: 26 | - cd src && npm i && npm run tsc && cd ../demo && tns build android 27 | - os: osx 28 | osx_image: xcode10.2 29 | language: node_js 30 | node_js: "10" 31 | jdk: oraclejdk8 32 | before_script: pod repo update 33 | script: 34 | - cd src && npm i && npm run tsc && cd ../demo && tns build ios 35 | 36 | android: 37 | components: 38 | - tools 39 | - platform-tools 40 | - build-tools-28.0.3 41 | - android-28 42 | - extra-android-m2repository 43 | - sys-img-armeabi-v7a-android-21 44 | 45 | before_install: 46 | - sudo pip install --upgrade pip 47 | - sudo pip install six 48 | 49 | install: 50 | - echo no | npm install -g nativescript 51 | - tns usage-reporting disable 52 | - tns error-reporting disable -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of 4 | this software and associated documentation files (the "Software"), to deal in 5 | the Software without restriction, including without limitation the rights to 6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 7 | the Software, and to permit persons to whom the Software is furnished to do so, 8 | subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 15 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 16 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 17 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 18 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NativeScript Icon Shortcuts plugin 2 | 3 | [![Build Status][build-status]][build-url] 4 | [![NPM version][npm-image]][npm-url] 5 | [![Downloads][downloads-image]][npm-url] 6 | [![Twitter Follow][twitter-image]][twitter-url] 7 | 8 | [build-status]:https://travis-ci.org/EddyVerbruggen/nativescript-app-shortcuts.svg?branch=master 9 | [build-url]:https://travis-ci.org/EddyVerbruggen/nativescript-app-shortcuts 10 | [npm-image]:http://img.shields.io/npm/v/nativescript-app-shortcuts.svg 11 | [npm-url]:https://npmjs.org/package/nativescript-app-shortcuts 12 | [downloads-image]:http://img.shields.io/npm/dm/nativescript-app-shortcuts.svg 13 | [twitter-image]:https://img.shields.io/twitter/follow/eddyverbruggen.svg?style=social&label=Follow%20me 14 | [twitter-url]:https://twitter.com/eddyverbruggen 15 | 16 | 17 | 18 | ### Supported platforms 19 | * iPhone 6s / 6s Plus or newer, running iOS 9 or newer. 20 | * Android 7.1 (API level 25) or newer. 21 | 22 | ## Installation 23 | From the command prompt go to your app's root folder and execute: 24 | 25 | NativesScript 7.x 26 | ``` 27 | tns plugin add nativescript-app-shortcuts 28 | ``` 29 | 30 | NativesScript 6.x 31 | ``` 32 | tns plugin add nativescript-app-shortcuts@2.2.0 33 | ``` 34 | 35 | ## Demo app (XML & TypeScript) 36 | Want to dive in quickly? Check out [the demo app](demo)! Otherwise, continue reading. 37 | 38 | ## Demo app (Angular) 39 | This plugin is part of the [plugin showcase app](https://github.com/EddyVerbruggen/nativescript-pluginshowcase/tree/master/app/appicon) I built using Angular. 40 | 41 | ## API 42 | 43 | ### `available` 44 | Check whether or not the device is capable. 45 | Android devices will also report `false`, so you can use this cross platform. 46 | 47 | ##### JavaScript 48 | ```js 49 | // require the plugin 50 | var AppShortcuts = require("nativescript-app-shortcuts").AppShortcuts; 51 | 52 | // instantiate the plugin 53 | var appShortcuts = new AppShortcuts(); 54 | 55 | appShortcuts.available().then( 56 | function(available) { 57 | if (available) { 58 | console.log("This device supports app shortcuts"); 59 | } else { 60 | console.log("No app shortcuts capability, ask the user to upgrade :)"); 61 | } 62 | } 63 | ); 64 | ``` 65 | 66 | ##### TypeScript 67 | ```typescript 68 | // require the plugin 69 | import { AppShortcuts } from "nativescript-app-shortcuts"; 70 | 71 | // instantiate the plugin 72 | let appShortcuts = new AppShortcuts(); 73 | 74 | appShortcuts.available().then(available => { 75 | if (available) { 76 | console.log("This device supports app shortcuts"); 77 | } else { 78 | console.log("No app shortcuts capability, ask the user to upgrade :)"); 79 | } 80 | }); 81 | ``` 82 | 83 | ### `configureQuickActions` 84 | When your app is running you can add those fancy Quick Actions to the Home Screen icon. You can configure up to four icons and they are 'cached' by iOS until you pass in a new set of icons. So you don't need to do this every time your app loads, but it can't really hurt of course. 85 | 86 | The `type` param (see the code sample below) is the most convenient way to relate the icon to the event you'll receive when the action was used to launch your app. So make sure it's unique amongst your icons. 87 | 88 | There are two types of icons currently supported: `iconType` and `iconTemplate`. 89 | 90 | #### iconType (iOS) 91 | A value from a [fixed list of icons which have been provided by Apple](https://developer.apple.com/ios/human-interface-guidelines/icons-and-images/system-icons/#home-screen-quick-action-icons) and look great (click the value in the 'API' column to look up the Objective-C name, and look at the sample below how to use them). 92 | 93 | #### iconTemplate 94 | Can be used to provide your own icon. It must be a valid name of an icon template in your Assets catalog. NativeScript allows you to add the icon to the `app/App_Resources/` folder. If you add a file called `beer.png` then reference it as `beer`. More on these images below when we discuss static actions. 95 | 96 | Ignored on iOS, if `iconType` is set as well. 97 | 98 | ##### TypeScript 99 | ```typescript 100 | import { AppShortcuts } from "nativescript-app-shortcuts"; 101 | import { isIOS } from "tns-core-modules/platform"; 102 | 103 | let appShortcuts = new AppShortcuts(); 104 | 105 | appShortcuts.configureQuickActions([ 106 | { 107 | type: "capturePhoto", 108 | title: "Snag a pic", 109 | subtitle: "You have 23 snags left", // iOS only 110 | iconType: isIOS ? UIApplicationShortcutIconType.CapturePhoto : null, 111 | iconTemplate: "eye" // ignored by iOS, if iconType is set as well 112 | }, 113 | { 114 | type: "beer", 115 | title: "Beer-tastic!", 116 | subtitle: "Check in & share", // iOS only 117 | iconTemplate: "beer" 118 | } 119 | ]).then(() => { 120 | alert("Added 2 actions, close the app and apply pressure to the app icon to check it out!"); 121 | }, (errorMessage) => { 122 | alert(errorMessage); 123 | }); 124 | ``` 125 | 126 | ## Capturing the Action 127 | When a home icon is pressed, your app launches. You probably want to perform different actions based on the home icon action 128 | that was picked (like routing to a different page), so you need a way to capture the event. 129 | 130 | ### NativeScript with XML 131 | In a non-Angular NativeScript app we need to extend `app.js` or `app.ts` and import the plugin, 132 | then call the `setQuickActionCallback` function. So in case of `app.ts` change it from something like this: 133 | 134 | ```typescript 135 | import * as application from "tns-core-modules/application"; 136 | application.start({ moduleName: "main-page" }); 137 | ``` 138 | 139 | To this: 140 | 141 | ```typescript 142 | import * as application from "tns-core-modules/application"; 143 | 144 | // import the plugin 145 | import { AppShortcuts } from "nativescript-app-shortcuts"; 146 | 147 | // instantiate it and call setQuickActionCallback 148 | new AppShortcuts().setQuickActionCallback(shortcutItem => { 149 | console.log(`The app was launched by shortcut type '${shortcutItem.type}'`); 150 | 151 | // this is where you handle any specific case for the shortcut 152 | if (shortcutItem.type === "beer") { 153 | // this is an example of 'deeplinking' through a shortcut 154 | let frames = require("ui/frame"); 155 | // on Android we need a little delay 156 | setTimeout(() => { 157 | frames.topmost().navigate("beer-page"); 158 | }); 159 | } else { 160 | // .. any other shortcut handling 161 | } 162 | }); 163 | 164 | application.start({ moduleName: "main-page" }); 165 | ``` 166 | 167 | ### NativeScript with Angular 168 | If you're using Angular, the best place to add the handler is in `app.module.ts`, 169 | and use `NgZone` to help Angular knowing about the route change you're performing: 170 | 171 | ```typescript 172 | import { NgZone } from "@angular/core"; 173 | import { isIOS } from "tns-core-modules/platform"; 174 | import { RouterExtensions } from "nativescript-angular"; 175 | import { AppShortcuts } from "nativescript-app-shortcuts"; 176 | 177 | export class AppModule { 178 | constructor(private routerExtensions: RouterExtensions, 179 | private zone: NgZone) { 180 | 181 | new AppShortcuts().setQuickActionCallback(shortcutItem => { 182 | console.log(`The app was launched by shortcut type '${shortcutItem.type}'`); 183 | 184 | // this is where you handle any specific case for the shortcut, based on its type 185 | if (shortcutItem.type === "page1") { 186 | this.deeplink("/page1"); 187 | } else if (shortcutItem.type === "page2") { 188 | this.deeplink("/page2"); 189 | } 190 | }); 191 | } 192 | 193 | private deeplink(to: string): void { 194 | this.zone.run(() => { 195 | this.routerExtensions.navigate([to], { 196 | animated: false 197 | }); 198 | }); 199 | } 200 | } 201 | ``` 202 | 203 | ## Configuring Static Actions 204 | With `configureQuickActions` you can configure dynamic actions, 205 | but what if you want actions to be available immediately after the app as installed from the store? 206 | 207 | ### iOS 208 | You need to manually edit the `.plist`. 209 | Fortunately NativeScript allows you to change this file through `app/App_Resources/iOS/Info.plist`. Anything added there is added to the final `.plist` during a build. 210 | 211 | Note that dynamic actions will never replace static actions, so if you have two static actions you can add up to two dynamic ones. Any more will be ignored. 212 | 213 | Here's an example which you can paste anywhere in the `.plist` file: 214 | 215 | ```xml 216 | UIApplicationShortcutItems 217 | 218 | 219 | UIApplicationShortcutItemIconFile 220 | Eye 221 | UIApplicationShortcutItemTitle 222 | Eye from plist 223 | UIApplicationShortcutItemSubtitle 224 | Awesome subtitle 225 | UIApplicationShortcutItemType 226 | eyefromplist 227 | 228 | 229 | UIApplicationShortcutItemIconType 230 | UIApplicationShortcutIconTypeCompose 231 | UIApplicationShortcutItemTitle 232 | Compose 233 | UIApplicationShortcutItemType 234 | compose 235 | 236 | 237 | ``` 238 | 239 | #### UIApplicationShortcutItemIconFile 240 | 241 | The second action above uses the built-in `UIApplicationShortcutIconTypeCompose` icon, but the first one uses a custom icon: `Eye`. This expects the file `app/App_Resources/iOS/Eye.png`. According to Apple's docs this needs to be a single color, transparent, square, `35x35` icon - but that size will look pixelated on retina devices so go ahead and use a `70x70` or `105x105` icon if you please. 242 | 243 | #### UIApplicationShortcutItemTitle / UIApplicationShortcutItemSubtitle 244 | 245 | You can guess what those do, right? Only the title is mandatory. 246 | 247 | #### UIApplicationShortcutItemType 248 | 249 | This is the same as the `type` param of `configureQuickActions`, so it's what you'll receive in the callback you may have configured in `app.js` / `app.ts` as `payload.type`. Just do something cool with that info (like routing to a specific page and loading some content). 250 | 251 | ### Android 252 | Open `app/App_Resources/Android/AndroidManifest.xml` and add: 253 | 254 | ```xml 255 | 256 | 258 | 259 | ``` 260 | 261 | Add the file you referenced in `AndroidManifest.xml`: `/app/App_Resources/Android/xml/shortcuts.xml` and add: 262 | 263 | ```xml 264 | 265 | 272 | 276 | 277 | 278 | 279 | ``` 280 | 281 | A few notes: 282 | - This adds 1 static `shortcut` to your app (you can add more if you like). 283 | - Make sure the `action` has the `shortcut.type.` prefix. The value behind the prefix is the equivalent of the iOS `UIApplicationShortcutItemType`. 284 | - The `targetPackage` needs to be your app id. 285 | - The `targetClass` needs to be the `activity` class as mentioned in `AndroidManifest.xml`, which is `com.tns.NativeScriptApplication` by default. 286 | -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/app.gradle: -------------------------------------------------------------------------------- 1 | // Add your native dependencies here: 2 | 3 | // Uncomment to add recyclerview-v7 dependency 4 | //dependencies { 5 | // compile 'com.android.support:recyclerview-v7:+' 6 | //} 7 | 8 | android { 9 | defaultConfig { 10 | generatedDensities = [] 11 | applicationId = "org.nativescript.plugindemo.appshortcuts" 12 | } 13 | aaptOptions { 14 | additionalParameters "--no-version-vectors" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 21 | 27 | 28 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/drawable-hdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/Android/src/main/res/drawable-hdpi/background.png -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/drawable-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/Android/src/main/res/drawable-hdpi/icon.png -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/drawable-hdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/Android/src/main/res/drawable-hdpi/logo.png -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/drawable-ldpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/Android/src/main/res/drawable-ldpi/background.png -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/drawable-ldpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/Android/src/main/res/drawable-ldpi/icon.png -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/drawable-ldpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/Android/src/main/res/drawable-ldpi/logo.png -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/drawable-mdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/Android/src/main/res/drawable-mdpi/background.png -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/drawable-mdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/Android/src/main/res/drawable-mdpi/icon.png -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/drawable-mdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/Android/src/main/res/drawable-mdpi/logo.png -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/drawable-nodpi/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/Android/src/main/res/drawable-nodpi/add.png -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/drawable-nodpi/beer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/Android/src/main/res/drawable-nodpi/beer.png -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/drawable-nodpi/eye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/Android/src/main/res/drawable-nodpi/eye.png -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/drawable-nodpi/splash_screen.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/drawable-xhdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/Android/src/main/res/drawable-xhdpi/background.png -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/drawable-xhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/Android/src/main/res/drawable-xhdpi/icon.png -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/drawable-xxhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/Android/src/main/res/drawable-xxhdpi/icon.png -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/icon.png -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/values-v21/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3d5afe 4 | -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | 14 | 15 | 16 | 19 | 20 | 23 | -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #F5F5F5 4 | #757575 5 | #33B5E5 6 | #272734 7 | -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Shortcut demo 3 | Shortcut demo 4 | 5 | Add 6 | Add stuff 7 | Adding disabled 8 | -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 18 | 19 | 21 | 22 | 23 | 31 | 32 | 34 | 35 | 36 | 42 | 43 | 45 | 46 | -------------------------------------------------------------------------------- /demo/app/App_Resources/Android/src/main/res/xml/shortcuts.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "29x29", 5 | "idiom" : "iphone", 6 | "filename" : "icon-29.png", 7 | "scale" : "1x" 8 | }, 9 | { 10 | "size" : "29x29", 11 | "idiom" : "iphone", 12 | "filename" : "icon-29@2x.png", 13 | "scale" : "2x" 14 | }, 15 | { 16 | "size" : "29x29", 17 | "idiom" : "iphone", 18 | "filename" : "icon-29@3x.png", 19 | "scale" : "3x" 20 | }, 21 | { 22 | "size" : "40x40", 23 | "idiom" : "iphone", 24 | "filename" : "icon-40@2x.png", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "size" : "40x40", 29 | "idiom" : "iphone", 30 | "filename" : "icon-40@3x.png", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "size" : "57x57", 35 | "idiom" : "iphone", 36 | "filename" : "icon-57.png", 37 | "scale" : "1x" 38 | }, 39 | { 40 | "size" : "57x57", 41 | "idiom" : "iphone", 42 | "filename" : "icon-57@2x.png", 43 | "scale" : "2x" 44 | }, 45 | { 46 | "size" : "60x60", 47 | "idiom" : "iphone", 48 | "filename" : "icon-60@2x.png", 49 | "scale" : "2x" 50 | }, 51 | { 52 | "size" : "60x60", 53 | "idiom" : "iphone", 54 | "filename" : "icon-60@3x.png", 55 | "scale" : "3x" 56 | }, 57 | { 58 | "size" : "29x29", 59 | "idiom" : "ipad", 60 | "filename" : "icon-29.png", 61 | "scale" : "1x" 62 | }, 63 | { 64 | "size" : "29x29", 65 | "idiom" : "ipad", 66 | "filename" : "icon-29@2x.png", 67 | "scale" : "2x" 68 | }, 69 | { 70 | "size" : "40x40", 71 | "idiom" : "ipad", 72 | "filename" : "icon-40.png", 73 | "scale" : "1x" 74 | }, 75 | { 76 | "size" : "40x40", 77 | "idiom" : "ipad", 78 | "filename" : "icon-40@2x.png", 79 | "scale" : "2x" 80 | }, 81 | { 82 | "size" : "50x50", 83 | "idiom" : "ipad", 84 | "filename" : "icon-50.png", 85 | "scale" : "1x" 86 | }, 87 | { 88 | "size" : "50x50", 89 | "idiom" : "ipad", 90 | "filename" : "icon-50@2x.png", 91 | "scale" : "2x" 92 | }, 93 | { 94 | "size" : "72x72", 95 | "idiom" : "ipad", 96 | "filename" : "icon-72.png", 97 | "scale" : "1x" 98 | }, 99 | { 100 | "size" : "72x72", 101 | "idiom" : "ipad", 102 | "filename" : "icon-72@2x.png", 103 | "scale" : "2x" 104 | }, 105 | { 106 | "size" : "76x76", 107 | "idiom" : "ipad", 108 | "filename" : "icon-76.png", 109 | "scale" : "1x" 110 | }, 111 | { 112 | "size" : "76x76", 113 | "idiom" : "ipad", 114 | "filename" : "icon-76@2x.png", 115 | "scale" : "2x" 116 | }, 117 | { 118 | "size" : "83.5x83.5", 119 | "idiom" : "ipad", 120 | "filename" : "icon-83.5@2x.png", 121 | "scale" : "2x" 122 | } 123 | ], 124 | "info" : { 125 | "version" : 1, 126 | "author" : "xcode" 127 | } 128 | } -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-50.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-57.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-72.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "extent" : "full-screen", 5 | "idiom" : "iphone", 6 | "subtype" : "736h", 7 | "filename" : "Default-736h@3x.png", 8 | "minimum-system-version" : "8.0", 9 | "orientation" : "portrait", 10 | "scale" : "3x" 11 | }, 12 | { 13 | "extent" : "full-screen", 14 | "idiom" : "iphone", 15 | "subtype" : "736h", 16 | "filename" : "Default-Landscape@3x.png", 17 | "minimum-system-version" : "8.0", 18 | "orientation" : "landscape", 19 | "scale" : "3x" 20 | }, 21 | { 22 | "extent" : "full-screen", 23 | "idiom" : "iphone", 24 | "subtype" : "667h", 25 | "filename" : "Default-667h@2x.png", 26 | "minimum-system-version" : "8.0", 27 | "orientation" : "portrait", 28 | "scale" : "2x" 29 | }, 30 | { 31 | "orientation" : "portrait", 32 | "idiom" : "iphone", 33 | "filename" : "Default@2x.png", 34 | "extent" : "full-screen", 35 | "minimum-system-version" : "7.0", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "extent" : "full-screen", 40 | "idiom" : "iphone", 41 | "subtype" : "retina4", 42 | "filename" : "Default-568h@2x.png", 43 | "minimum-system-version" : "7.0", 44 | "orientation" : "portrait", 45 | "scale" : "2x" 46 | }, 47 | { 48 | "orientation" : "portrait", 49 | "idiom" : "ipad", 50 | "filename" : "Default-Portrait.png", 51 | "extent" : "full-screen", 52 | "minimum-system-version" : "7.0", 53 | "scale" : "1x" 54 | }, 55 | { 56 | "orientation" : "landscape", 57 | "idiom" : "ipad", 58 | "filename" : "Default-Landscape.png", 59 | "extent" : "full-screen", 60 | "minimum-system-version" : "7.0", 61 | "scale" : "1x" 62 | }, 63 | { 64 | "orientation" : "portrait", 65 | "idiom" : "ipad", 66 | "filename" : "Default-Portrait@2x.png", 67 | "extent" : "full-screen", 68 | "minimum-system-version" : "7.0", 69 | "scale" : "2x" 70 | }, 71 | { 72 | "orientation" : "landscape", 73 | "idiom" : "ipad", 74 | "filename" : "Default-Landscape@2x.png", 75 | "extent" : "full-screen", 76 | "minimum-system-version" : "7.0", 77 | "scale" : "2x" 78 | }, 79 | { 80 | "orientation" : "portrait", 81 | "idiom" : "iphone", 82 | "filename" : "Default.png", 83 | "extent" : "full-screen", 84 | "scale" : "1x" 85 | }, 86 | { 87 | "orientation" : "portrait", 88 | "idiom" : "iphone", 89 | "filename" : "Default@2x.png", 90 | "extent" : "full-screen", 91 | "scale" : "2x" 92 | }, 93 | { 94 | "orientation" : "portrait", 95 | "idiom" : "iphone", 96 | "filename" : "Default-568h@2x.png", 97 | "extent" : "full-screen", 98 | "subtype" : "retina4", 99 | "scale" : "2x" 100 | }, 101 | { 102 | "orientation" : "portrait", 103 | "idiom" : "ipad", 104 | "extent" : "to-status-bar", 105 | "scale" : "1x" 106 | }, 107 | { 108 | "orientation" : "portrait", 109 | "idiom" : "ipad", 110 | "filename" : "Default-Portrait.png", 111 | "extent" : "full-screen", 112 | "scale" : "1x" 113 | }, 114 | { 115 | "orientation" : "landscape", 116 | "idiom" : "ipad", 117 | "extent" : "to-status-bar", 118 | "scale" : "1x" 119 | }, 120 | { 121 | "orientation" : "landscape", 122 | "idiom" : "ipad", 123 | "filename" : "Default-Landscape.png", 124 | "extent" : "full-screen", 125 | "scale" : "1x" 126 | }, 127 | { 128 | "orientation" : "portrait", 129 | "idiom" : "ipad", 130 | "extent" : "to-status-bar", 131 | "scale" : "2x" 132 | }, 133 | { 134 | "orientation" : "portrait", 135 | "idiom" : "ipad", 136 | "filename" : "Default-Portrait@2x.png", 137 | "extent" : "full-screen", 138 | "scale" : "2x" 139 | }, 140 | { 141 | "orientation" : "landscape", 142 | "idiom" : "ipad", 143 | "extent" : "to-status-bar", 144 | "scale" : "2x" 145 | }, 146 | { 147 | "orientation" : "landscape", 148 | "idiom" : "ipad", 149 | "filename" : "Default-Landscape@2x.png", 150 | "extent" : "full-screen", 151 | "scale" : "2x" 152 | } 153 | ], 154 | "info" : { 155 | "version" : 1, 156 | "author" : "xcode" 157 | } 158 | } -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-667h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-667h@2x.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-736h@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-736h@3x.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@3x.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default@2x.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchScreen-AspectFill.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchScreen-AspectFill@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@2x.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchScreen-Center.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchScreen-Center@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | 3D Touch 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | 3D Touch 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIRequiresFullScreen 28 | 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | UISupportedInterfaceOrientations~ipad 40 | 41 | UIInterfaceOrientationPortrait 42 | UIInterfaceOrientationPortraitUpsideDown 43 | UIInterfaceOrientationLandscapeLeft 44 | UIInterfaceOrientationLandscapeRight 45 | 46 | UIApplicationShortcutItems 47 | 48 | 49 | UIApplicationShortcutItemIconType 50 | UIApplicationShortcutIconTypeCompose 51 | UIApplicationShortcutItemTitle 52 | Compose 53 | UIApplicationShortcutItemType 54 | compose 55 | 56 | 57 | UIApplicationShortcutItemIconFile 58 | eye 59 | UIApplicationShortcutItemTitle 60 | Eye C U 61 | UIApplicationShortcutItemSubtitle 62 | I'm a static action 63 | UIApplicationShortcutItemType 64 | eyefromplist 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/Podfile: -------------------------------------------------------------------------------- 1 | post_install do |installer| 2 | installer.pods_project.targets.each do |target| 3 | target.build_configurations.each do |config| 4 | config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET' 5 | end 6 | end 7 | end -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/beer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/beer.png -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/build.xcconfig: -------------------------------------------------------------------------------- 1 | // You can add custom settings here 2 | // for example you can uncomment the following line to force distribution code signing 3 | // CODE_SIGN_IDENTITY = iPhone Distribution 4 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 5 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 6 | VERIFY_WORKSPACE = YES; 7 | VALIDATE_WORKSPACE = YES; -------------------------------------------------------------------------------- /demo/app/App_Resources/iOS/eye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EddyVerbruggen/nativescript-app-shortcuts/fbed9a0251c6c00c7a9e353490b055d0d9fb7efb/demo/app/App_Resources/iOS/eye.png -------------------------------------------------------------------------------- /demo/app/app-root.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /demo/app/app.css: -------------------------------------------------------------------------------- 1 | page { 2 | background-color: #F4F4F4; 3 | } 4 | 5 | .tab-content { 6 | color: #808080; 7 | padding: 20; 8 | } 9 | 10 | .title { 11 | font-size: 20; 12 | margin: 0 0 10 0; 13 | color: #3c3c3c; 14 | } 15 | 16 | .subtitle { 17 | font-size: 14; 18 | margin: 14 0 6 18; 19 | color: #3c3c3c; 20 | } 21 | 22 | .message { 23 | font-size: 14; 24 | color: #284848; 25 | margin: 8 0 8 18; 26 | } 27 | 28 | label { 29 | font-size: 14; 30 | } 31 | 32 | button { 33 | background-color: #6494AA; 34 | padding: 8 12; 35 | margin: 4 10; 36 | font-size: 13; 37 | border-radius: 4; 38 | } 39 | 40 | .button { 41 | color: #ffffff; 42 | } 43 | 44 | .button-positive { 45 | background-color: #90A959; 46 | } 47 | 48 | .button-available { 49 | background-color: #E0A458; 50 | } 51 | 52 | .button-company { 53 | background-color: #A63D40; 54 | } -------------------------------------------------------------------------------- /demo/app/app.ts: -------------------------------------------------------------------------------- 1 | import { Application, Frame } from "@nativescript/core"; 2 | import { AppShortcuts } from "nativescript-app-shortcuts"; 3 | 4 | // .. and set a callback handler as well 5 | new AppShortcuts().setQuickActionCallback(shortcutItem => { 6 | console.log(`The app was launched by shortcut type '${shortcutItem.type}'`); 7 | 8 | // this is where you handle any specific case for the shortcut 9 | if (shortcutItem.type === "beer") { 10 | setTimeout(() => { 11 | Frame.getFrameById("appRootFrame") // see app-root.xml 12 | .navigate("beer-page"); 13 | }); 14 | } else { 15 | // .. any other shortcut handling 16 | } 17 | }); 18 | 19 | Application.run({moduleName: "app-root"}); 20 | -------------------------------------------------------------------------------- /demo/app/beer-page.ts: -------------------------------------------------------------------------------- 1 | import { EventData } from "@nativescript/core"; 2 | 3 | // Event handler for Page "loaded" event attached in beer-page.xml 4 | export function pageLoaded(args: EventData) { 5 | console.log("--- beers page loaded!"); 6 | } -------------------------------------------------------------------------------- /demo/app/beer-page.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | -------------------------------------------------------------------------------- /demo/app/bundle-config.ts: -------------------------------------------------------------------------------- 1 | if ((global).TNS_WEBPACK) { 2 | require("tns-core-modules/bundle-entry-points"); 3 | 4 | global.registerModule("main-page", () => require("./main-page")); 5 | } 6 | -------------------------------------------------------------------------------- /demo/app/main-page.ts: -------------------------------------------------------------------------------- 1 | import { EventData, Page } from "@nativescript/core"; 2 | import { HelloWorldModel } from "./main-view-model"; 3 | 4 | // Event handler for Page "loaded" event attached in main-page.xml 5 | export function pageLoaded(args: EventData) { 6 | // Get the event sender 7 | let page = args.object; 8 | page.bindingContext = new HelloWorldModel(); 9 | } -------------------------------------------------------------------------------- /demo/app/main-page.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |