• Stars
    star
    509
  • Rank 86,772 (Top 2 %)
  • Language
    C++
  • License
    MIT License
  • Created almost 11 years ago
  • Updated about 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🍻 A Toast popup plugin for your fancy Cordova app

PhoneGap Toast plugin

for Android, iOS, WP8, Windows and BlackBerry by Eddy Verbruggen

paypal If you like this plugin and want to say thanks please send a PR or donation. Both are equally appreciated!

Marketplace logo For a quick demo app and easy code samples, check out the plugin page at the Verified Plugins Marketplace: http://plugins.telerik.com/plugin/toast

0. Index

  1. Description
  2. Screenshots
  3. Installation
  4. Automatically (CLI / Plugman)
  5. Manually
  6. PhoneGap Build
  7. Usage
  8. Styling
  9. Credits
  10. Changelog

1. Description

This plugin allows you to show a native Toast (a little text popup) on iOS, Android and WP8. It's great for showing a non intrusive native notification which is guaranteed always in the viewport of the browser.

  • You can choose where to show the Toast: at the top, center or bottom of the screen.
  • You can choose two durations: short (approx. 2 seconds), or long (approx. 5 seconds), after which the Toast automatically disappears.

Example usages:

  • "There were validation errors"
  • "Account created successfully"
  • "The record was deleted"
  • "Login successful"
  • "You are now logged out"
  • "Connection failure, please try again later"
  • "Created Order #00287

2. Screenshots

iOS

ScreenShot

A few styling options

ScreenShot

ScreenShot

Android

ScreenShot

Windows Phone 8

ScreenShot

3. Installation

Automatically (CLI / Plugman)

Toast is compatible with Cordova Plugman, compatible with PhoneGap 3.0 CLI, here's how it works with the CLI (backup your project first!):

Using the Cordova CLI and the Cordova Plugin Registry

$ cordova plugin add cordova-plugin-x-toast
$ cordova prepare

Or using the phonegap CLI

$ phonegap local plugin add cordova-plugin-x-toast

Toast.js is brought in automatically. There is no need to change or add anything in your html.

Manually

You'd better use the CLI, but here goes:

1. Add the following xml to your config.xml in the root directory of your www folder:

<!-- for iOS -->
<feature name="Toast">
  <param name="ios-package" value="Toast" />
</feature>
<!-- for Android -->
<feature name="Toast">
  <param name="android-package" value="nl.xservices.plugins.Toast" />
</feature>
<!-- for WP8 -->
<feature name="Toast">
  <param name="wp-package" value="Toast"/>
</feature>

For iOS, you'll need to add the QuartzCore.framework to your project (it's for automatically removing the Toast after a few seconds). Click your project, Build Phases, Link Binary With Libraries, search for and add QuartzCore.framework.

2. Grab a copy of Toast.js, add it to your project and reference it in index.html:

<script type="text/javascript" src="js/Toast.js"></script>

3. Download the source files and copy them to your project.

iOS: Copy the two .h and two .m files to platforms/ios/<ProjectName>/Plugins

Android: Copy Toast.java to platforms/android/src/nl/xservices/plugins (create the folders)

WP8: Copy Toast.cs to platforms/wp8/Plugins/nl.x-services.plugins.toast (create the folders)

PhoneGap Build

Toast works with PhoneGap build too, but only with PhoneGap 3.0 and up.

Just add the following xml to your config.xml to always use the latest version of this plugin:

<gap:plugin name="cordova-plugin-x-toast" source="npm" />

Toast.js is brought in automatically. There is no need to change or add anything in your html.

4. Usage

Showing a Toast

You have two choices to make when showing a Toast: where to show it and for how long.

  • show(message, duration, position)
  • duration: 'short', 'long', '3000', 900 (the latter are milliseconds)
  • position: 'top', 'center', 'bottom'

You can also use any of these convenience methods:

  • showShortTop(message)
  • showShortCenter(message)
  • showShortBottom(message)
  • showLongTop(message)
  • showLongCenter(message)
  • showLongBottom(message)

You can copy-paste these lines of code for a quick test:

<button onclick="window.plugins.toast.showShortTop('Hello there!', function(a){console.log('toast success: ' + a)}, function(b){alert('toast error: ' + b)})">Toast showShortTop</button>
<button onclick="window.plugins.toast.showLongBottom('Hello there!', function(a){console.log('toast success: ' + a)}, function(b){alert('toast error: ' + b)})">Toast showLongBottom</button>
<button onclick="window.plugins.toast.show('Hello there!', 'long', 'center', function(a){console.log('toast success: ' + a)}, function(b){alert('toast error: ' + b)})">Toast show long center</button>

Tweaking the vertical position

Since 2.1.0 you can add pixels to move the toast up or down. Note that showWithOptions can be used instead of the functions above, but it's not useful unless you want to pass addPixelsY.

function showBottom() {
  window.plugins.toast.showWithOptions(
    {
      message: "hey there",
      duration: "short", // which is 2000 ms. "long" is 4000. Or specify the nr of ms yourself.
      position: "bottom",
      addPixelsY: -40  // added a negative value to move it up a bit (default 0)
    },
    onSuccess, // optional
    onError    // optional
  );
}

Hiding a Toast

In case you want to hide a Toast manually, call this:

function hide() {
  // this function takes an optional success callback, but you can do without just as well
  window.plugins.toast.hide();
}

When the toast gets hidden, your success callback will be called (in case you have defined one) with the event property equals to hide (more details about the callback in the next section).

  window.plugins.toast.showWithOptions({
      message: 'My message',
      // More config here...
  },
      //Success callback
      function(args) {
          console.log(args.event);
          //This will print 'hide'
      }, 
      function(error) {
          console.error('toast error: ', error);
      }
  );

Receiving a callback when a Toast is tapped

On iOS and Android the success handler of your show function will be notified (again) when the toast was tapped.

So the first time the success handler fires is when the toast is shown, and in case the user taps the toast it will be called again. You can distinguish between those events of course:

  window.plugins.toast.showWithOptions(
    {
      message: "hey there",
      duration: 1500, // ms
      position: "bottom",
      addPixelsY: -40,  // (optional) added a negative value to move it up a bit (default 0)
      data: {'foo':'bar'} // (optional) pass in a JSON object here (it will be sent back in the success callback below)
    },
    // implement the success callback
    function(result) {
      if (result && result.event) {
        console.log("The toast was tapped or got hidden, see the value of result.event");
        console.log("Event: " + result.event); // "touch" when the toast was touched by the user or "hide" when the toast geot hidden
        console.log("Message: " + result.message); // will be equal to the message you passed in
        console.log("data.foo: " + result.data.foo); // .. retrieve passed in data here
        
        if (result.event === 'hide') {
          console.log("The toast has been shown");
        }
      }
    }
  );

The success callback is useful when your toast is bound to a notification id in your backend and you have to mark it as read when the toast is done, or to update the notifications counter for iOS. The usage of this will be defined by your application logic. Use the result.data object to support your specific logic.

Styling

Since version 2.4.0 you can pass an optional styling object to the plugin. The defaults make sure the Toast looks the same as when you would not pass in the styling object at all.

Note that on WP this object is currently ignored.

  window.plugins.toast.showWithOptions({
    message: "hey there",
    duration: "short", // 2000 ms
    position: "bottom",
    styling: {
      opacity: 0.75, // 0.0 (transparent) to 1.0 (opaque). Default 0.8
      backgroundColor: '#FF0000', // make sure you use #RRGGBB. Default #333333
      textColor: '#FFFF00', // Ditto. Default #FFFFFF
      textSize: 20.5, // Default is approx. 13.
      cornerRadius: 16, // minimum is 0 (square). iOS default 20, Android default 100
      horizontalPadding: 20, // iOS default 16, Android default 50
      verticalPadding: 16 // iOS default 12, Android default 30
    }
  });

Tip: if you need to pass different values for iOS and Android you can use fi. the device plugin to determine the platform and pass opacity: isAndroid() ? 0.7 : 0.9.

WP8 quirks

The WP8 implementation needs a little more work, but it's perfectly useable when you keep this in mind:

  • You can't show two Toasts simultaneously.
  • Wait until the first Toast is hidden before the second is shown, otherwise the second one will be hidden quickly.
  • The positioning of the bottom-aligned Toast is not perfect, but keep it down to 1 or 2 lines of text and you're fine.

5. CREDITS

This plugin was enhanced for Plugman / PhoneGap Build by Eddy Verbruggen. The Android code was entirely created by me. For iOS most credits go to this excellent [Toast for iOS project by Charles Scalesse] (https://github.com/scalessec/Toast).

6. CHANGELOG

  • 2.7.2: Even better Android compatibility, but you're limited to short and long durations now, on Android.
  • 2.7.0: Android P compatibility.
  • 2.6.2: iOS view hierarchy fix.
  • 2.6.0: Windows support!
  • 2.5.2: Multi-line wrapping Toasts are now center aligned.
  • 2.5.1: You can now specify the textSize used in the font for iOS and Android.
  • 2.5.0: By popular demand: Specify the duration of the Toast on iOS and Android. Pass in short (2000ms), long (4000ms), or any nr of milliseconds: 900.
  • 2.4.2: You can now also set the Toast opacity for iOS.
  • 2.4.1: As an addition to 2.4.0, Sino added the option to change the text color!
  • 2.4.0: You can now style the Toast with a number of properties. See
  • 2.3.2: The click event introduced with 2.3.0 did not work with Android 5+.
  • 2.3.0: The plugin will now report back to JS if Toasts were tapped by the user.
  • 2.0.1: iOS messages are hidden when another one is shown. Thanks Richie Min!
  • 2.0: WP8 support
  • 1.0: initial version supporting Android and iOS

More Repositories

1

SocialSharing-PhoneGap-Plugin

πŸ‘¨β€β€οΈβ€πŸ’‹β€πŸ‘¨ Cordova plugin to share text, a file (image/PDF/..), or a URL (or all three) via the native sharing widget
Objective-C
1,778
star
2

nativescript-plugin-firebase

πŸ”₯ NativeScript plugin for Firebase
TypeScript
1,011
star
3

Calendar-PhoneGap-Plugin

πŸ“… Cordova plugin to Create, Change, Delete and Find Events in the native Calendar
Java
773
star
4

cordova-plugin-googleplus

βž• Cordova plugin to login with Google Sign-In on iOS and Android
Java
567
star
5

nativescript-barcodescanner

πŸ”Ž NativeScript QR / barcode (bulk)scanner plugin
TypeScript
292
star
6

cordova-plugin-safariviewcontroller

🐯 🐘 🐊 Forget InAppBrowser for iOS - this is way better for displaying read-only web content in your PhoneGap app
Java
281
star
7

cordova-plugin-native-keyboard

🎹 Add a Slack / WhatsApp - style chat keyboard to your Cordova app!
Objective-C
275
star
8

Insomnia-PhoneGap-Plugin

πŸ˜ͺ Prevent the screen of the mobile device from falling asleep
JavaScript
266
star
9

cordova-plugin-touch-id

πŸ’… πŸ‘±β€β™‚οΈ Forget passwords, use a fingerprint scanner!
Objective-C
216
star
10

cordova-plugin-actionsheet

πŸ“‹ ActionSheet plugin for Cordova iOS and Android apps
JavaScript
208
star
11

cordova-plugin-3dtouch

πŸ‘‡ Quick Home Icon Actions and Link Previews
Objective-C
176
star
12

nativescript-pluginshowcase

An app I'm using to showcase a bunch of NativeScript plugins (also in the appstores!)
TypeScript
175
star
13

HealthKit

Cordova plugin for the iOS HealthKit framework
Objective-C
168
star
14

remove.bg

A Node.js wrapper for the remove.bg API
TypeScript
162
star
15

nativescript-local-notifications

πŸ“« NativeScript plugin to easily schedule local notifications
TypeScript
162
star
16

SSLCertificateChecker-PhoneGap-Plugin

πŸ›‚ Prevent Man in the Middle attacks with this Cordova plugin
Objective-C
156
star
17

VideoCapturePlus-PhoneGap-Plugin

πŸŽ₯
Objective-C
133
star
18

nativescript-fingerprint-auth

πŸ’… πŸ‘±β€β™‚οΈ Forget passwords, use a fingerprint scanner or facial recognition!
TypeScript
133
star
19

nativescript-feedback

πŸ“’ Non-blocking textual feedback for your NativeScript app
TypeScript
129
star
20

nativescript-ar

Augmented Reality NativeScript plugin
TypeScript
118
star
21

nativescript-secure-storage

πŸ” NativeScript plugin for secure local storage of fi. passwords
TypeScript
108
star
22

nativescript-nodeify

Makes most npm packages compatible with NativeScript
JavaScript
91
star
23

nativescript-speech-recognition

πŸ’¬ Speech to text, using the awesome engines readily available on the device.
TypeScript
90
star
24

nativescript-directions

πŸ‘† πŸ‘‰ πŸ‘‡ πŸ‘ˆ Open the Maps app to show directions to anywhere you like
TypeScript
81
star
25

nativescript-localize

Internationalization plugin for NativeScript using native capabilities of each platform
TypeScript
79
star
26

nativescript-nfc

πŸ“ NativeScript plugin to discover, read, and write NFC tags
TypeScript
77
star
27

nativescript-keyboard-toolbar

βŒ¨οΈπŸ› Add a customizable toolbar on top of the soft keyboard
TypeScript
69
star
28

nativescript-admob

NativeScript plugin to earn some precious πŸ’°πŸ’° with ads by Google AdMob
JavaScript
68
star
29

cordova-plugin-ios-longpress-fix

πŸ” Suppress the magnifying glass when long pressing an iOS9 PhoneGap app
Objective-C
67
star
30

nativescript-i18n

This is a plugin for Nativescript that implements native i18n in an easy manner.
JavaScript
65
star
31

cordova-plugin-taptic-engine

πŸ“³ Use Apple's Taptic Engine to vibrate your iPhone 6s (or up) in a variety of ways
Objective-C
61
star
32

Flashlight-PhoneGap-Plugin

πŸ”¦ Cordova plugin for using the torch / flashlight of your device
Java
60
star
33

cordova-plugin-backgroundaudio

🎢 Background Audio plugin for Cordova PhoneGap apps
Objective-C
57
star
34

nativescript-gradient

🎨 Easily add fancy (or subtle) gradient backgrounds to your views
TypeScript
54
star
35

nativescript-app-shortcuts

πŸ‘‡ Home Icon Actions for your NativeScript app, now also for Android!
TypeScript
48
star
36

nativescript-appversion

πŸ”’ NativeScript plugin to retrieve your app's package ID and current version
JavaScript
48
star
37

nativescript-email

βœ‰οΈ NativeScript plugin for opening draft e-mails
JavaScript
47
star
38

nativescript-calendar

πŸ“… NativeScript plugin to Create, Delete and Find Events in the native Calendar
TypeScript
44
star
39

barcodescanner-lib-aar

Project which compiles barcodescanner sources to an aar for use in Android projects
Java
41
star
40

nativescript-clipboard

πŸ“‹ NativeScript plugin to copy stuff to the device clipboard, and read from it again
TypeScript
40
star
41

nativescript-apple-sign-in

Sign In With Apple, as seen on WWDC 2019, available with iOS 13
TypeScript
39
star
42

footplr

An app using NativeScript and Vue with Firebase (Firestore)
HTML
38
star
43

nativescript-ocr

πŸ“° πŸ” Tesseract-powered OCR plugin for NativeScript
TypeScript
38
star
44

nativescript-printer

πŸ“  Send an image or the screen contents to a physical printer
TypeScript
35
star
45

HeadsetDetection-PhoneGap-Plugin

🎧 A PhoneGap plugin for detection of a headset (wired or bluetooth)
Java
34
star
46

nativescript-numeric-keyboard

πŸ”’ Replace the meh default number/phone keyboard with this stylish one
TypeScript
33
star
47

nativescript-keyframes

Facebook Keyframes plugin - if CSS animations don't cut it for ya
JavaScript
32
star
48

nativescript-star-printer

🌟 Print directly to Star Micronics printers from your NativeScript app! http://www.starmicronics.com/
Objective-C
32
star
49

cordova-plugin-app-icon-changer

Change the homescreen icon of your Cordova iOS app at runtime!
Objective-C
32
star
50

nativescript-bluetooth-demo

JavaScript
30
star
51

nativescript-android-tv

A little PoC demonstrating code sharing between Android Phone and TV apps
TypeScript
27
star
52

nativescript-homekit

🏑 HomeKit plugin for your fancy NativeScript app
TypeScript
24
star
53

nativescript-plugin-firebase-demo

Demo app for the NativeScript Firebase plugin
JavaScript
24
star
54

nativescript-performance-monitor

⚑ Proof your app maintains 60-ish FPS by collecting data or showing it on screen with this NativeScript plugin!
TypeScript
21
star
55

nativescript-pushy

Easy push notifications for your NativeScript app!
TypeScript
21
star
56

nativescript-webview-utils

πŸ•ΈAdd request headers to a NativeScript WebView. Perhaps more utils later.
TypeScript
20
star
57

nativescript-particle

πŸ•Ή Control your https://particle.io devices from NativeScript
TypeScript
20
star
58

cordova-plugin-webviewcolor

Objective-C
19
star
59

nativescript-appavailability

πŸ”Ž NativeScript plugin to check whether or not another app is installed on the device
JavaScript
19
star
60

nativescript-mapbox-demo

Demo app for the NativeScript Mapbox plugin
JavaScript
18
star
61

nativescript-pedometer

🐾 step count tracking plugin for your NativeScript app
TypeScript
17
star
62

nativescript-taptic-engine

πŸ“³ Use Apple's Taptic Engine to vibrate your iPhone 6s (and up) in a variety of ways
Vue
16
star
63

nativescript-app-icon-changer

Change the homescreen icon of your NativeScript iOS app at runtime!
TypeScript
16
star
64

nativescript-local-notifications-demo

Demo app for the NativeScript local notifications plugin
JavaScript
15
star
65

nativescript-dark-mode

NativeScript plugin to tap into iOS13's Dark Mode and Android's Night Mode configs
TypeScript
15
star
66

nativescript-aws

[DEPRECATED, see the readme] NativeScript plugin for Amazon's AWS ☁️ services
JavaScript
15
star
67

nativescript-headset-detection

Detect when a headphone (jack or bluetooth) is (dis)connected.
TypeScript
14
star
68

CameraRoll-PhoneGap-Plugin

Objective-C
11
star
69

nativescripthighcharts

Demoing how to add highcharts to your NativeScript app
TypeScript
10
star
70

NativePageTransitions-Ionic-Demo

Demo App for Ionic framwork apps with the Native Page Transitions plugin
JavaScript
10
star
71

X-Services-PhoneGap-Build-Plugins-Demo

A demo repo for all of our PhoneGap Build plugins
JavaScript
10
star
72

nativescript-call

NativeScript plugin to interact with the native Call UI
TypeScript
8
star
73

cordova-plugin-researchkit

Cordova / PhoneGap plugin for the Apple's ResearchKit
Objective-C
8
star
74

phonegapbuildmonitor

Repository for the iOS and Android PhoneGap Build app: Buildmeister
CSS
6
star
75

nativescript-izettle

Accept payments directly in your NativeScript app with iZettle
5
star
76

nativescript-calendar-demo

Demo app for the NativeScript Calendar plugin
JavaScript
5
star
77

ns-vue-firebase-test

Sample code to show how to use Firebase with the NS-Vue Vue CLI template
JavaScript
5
star
78

nativescript-randombytes

πŸ”€ πŸ”’ A NativeScript shim for the randombytes package
JavaScript
4
star
79

nativescript-date-utils

A simple plugin with a few date-related utilities
Shell
4
star
80

nativescript-admob-demo

Demo app for the NativeScript AdMob plugin
JavaScript
4
star
81

nativescript-snapkit

Log in to your app with your Snapchat account
TypeScript
3
star
82

ios-framework-barcodescanner

An iOS BarcodeScanner .framework library, wrapping the built-in iOS barcodescanner capabilities
Objective-C
2
star
83

bridgematebroadcast

Java
2
star
84

nativescript-barcodescanner-demo

Demo app for the NativeScript BarcodeScanner plugin
JavaScript
2
star
85

nativescript-ios-out-of-memory

Reproducing NativeScript issue 4490
JavaScript
1
star
86

nativescript-wkwebview

NativeScript WKWebView plugin for iOS
JavaScript
1
star
87

iOSMinVersion-PhoneGapBuild-Plugin

A PhoneGap Build plugin for overriding the minimal iOS version to deploy your app on.
1
star
88

iPadLandscapeEnabler-PhoneGapBuild-Plugin

1
star
89

mgggplus-frontend

Mobile client
JavaScript
1
star
90

nativescript-socket-mobile

1
star
91

Karma-App

JavaScript
1
star
92

nativescript-mapbox-vision

This is just a test, please ignore this repo for now 😊
TypeScript
1
star
93

cordova-and-nativescript-pokemon-app

Showing how to create a similar app in both Cordova and NativeScript, using plugins for SocialSharing and NetworkInformation.
TypeScript
1
star