[转] cordova-plugin-x-toast

本文转自:https://www.npmjs.com/package/cordova-plugin-x-toast

cordova plugin add https://github.com/EddyVerbruggen/Toast-PhoneGap-Plugin.git

0. Index

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

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.
  • Compatible with Cordova Plugman.
  • Officially supported by PhoneGap Build.
  • Minimum iOS version is 6.

Example usages:

  • "There were validation errors"
  • "Account created successfully"
  • "The record was deleted"
  • "Login successful"
  • "The battery is almost dead"
  • "You are now logged out"
  • "Connection failure, please try again later"

2. Screenshots

iOS

A few styling options

Android

Windows Phone 8

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();

}

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");

console.log("Event: " + result.event); // will be defined, with a value of "touch" when it was tapped by the user

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

} else {

console.log("The toast has been shown");

}

}

);

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

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).

时间: 2024-09-29 10:46:32

[转] cordova-plugin-x-toast的相关文章

[Cordova] Plugin开发入门

[Cordova] Plugin开发入门 Overview Cordova的设计概念,是在APP上透过Web控件来呈现Web页面,让Web开发人员可以操作熟悉的语言.工具来开发APP.使用Web页面来呈现功能内容,的确可以满足大部分的功能需求,但是因为APP的使用情景毕竟有别于Web,某些APP的功能需求像是:拨打电话.扫描条形码...等等,无法单纯使用Web开发技术就能实现. 为了让Web页面能够满足更多的APP功能需求,Cordova提供了Plugin机制,让Web页面能够挂载并调用Nati

phonegap/cordova plugin

蛋疼的是你不能用native去写app,那么只能用个中间件来完成,现在选择无疑是cordova,国内的多用appcan(去年用过,个人感觉除了有点乱之外其他的还ok),先来讲讲cordova插件,因为很多时候官方提供的plugin已经在我们自身应用中满足不了,那么只能依靠自己去完成,如下最简单的webapp plugin. plugin(myKitty)  |__www  |   |__myKitty.js  |  |__plugin.xml 以上是结构 我们来看下怎么去完成这个plugin p

[Cordova] Plugin开发架构

[Cordova] Plugin开发架构 问题情景 开发Cordova Plugin的时候,侦错Native Code是一件让人困扰的事情,因为Cordova所提供的错误讯息并没有那么的完整.常常需要花费大量的时间与精神之后,才发现只是一个字母打错,无形中降低了开发的效率. 解决方案 为了增加Cordova Plugin开发的效率,开发人员可以套用下列的开发架构,来加速开发: 将实际提供功能的Native Code,使用IDE封装为Native Library.在这个步骤中,使用IDE封装Nat

cordova plugin 大全及安装命令

前言:用cordova开发hybrid app的过程中,由于是html5开发的app,在手机上很多权限受限制,这就导致了我们需要安装很多插件来弥补这一缺点.在网上搜了好久,感觉都不是很全,所以自己整理了一份cordova plugin清单. 1.获取当前应用的版本号 cordova plugin add cordova-plugin-app-version 2.获取网络连接信息 cordova plugin add cordova-plugin-network-information 3.获取G

在meteor中如何使用ionic组件tabs,及如何添加使用cordova plugin inappbrower

meteor框架的优点不言而喻,它大大减轻了App前后端开发的负担,今年5月又获得B轮2000万融资,代表了市场对它一个免费.开源开发框架的肯定.cordova的优点就是插件多,ionic的优点是UI漂亮并且性能是目前hybird框架中最好的,本文涉及到的技术为作者所用,简述meteor+cordova+ionic的整合方法. 1,创建项目 meteor create projectName cd [projectName] meteor add urigo:angular meteor add

ionic cordova plugin 安装和使用

注意事项 ionic1需要ng-cordova plugin的使用都需要放到deviceready事件的回调中, 设备准备好了才能设备交互 plugin只有在真机上才有效果, 模拟器(部分)和browser中是无效的 插件安装 官网Doc - http://cordova.apache.org/docs/en/latest/guide/cli/index.html#add-plugins ionic cordova plugin add cordova-plugin-camera 插件的引入 i

ionic cordova plugin for ios

源代码结构目录: payplugin: |_src |_android |_PayPlugin.java |_ios |_CDVPayPlugin.h |_CDVPayPlugin.m |_www |_payplugin.js plugin.xml --====================================== payplugin/www/payplugin.js var exec = require('cordova/exec');/*window.payplugin = f

三、How to develop cordova plugin @ iOS with XCode

注:本文为原创文章,欢迎转载,但是请注明出处:http://www.cnblogs.com/xdxer/p/4127220.html   一:什么是cordova插件 Plugin Development Guide : http://cordova.apache.org/docs/en/edge/guide_hybrid_plugins_index.md.html#Plugin%20Development%20Guide cordova 官方的插件包含了很多调用硬件设备.文件系统和网络请求的功

cordova plugin add出现CERT_UNTRUSTED错误解决方法

介绍 目前使用ionic+cordova完成hybmid app开发,在安装geolocation插件时爆出来一个莫名的错误: Fetching from npm failed: CERT_UNTRUSTED Error: CERT_UNTRUSTED     at SecurePair.<anonymous> (tls.js:1367:32)     at SecurePair.emit (events.js:92:17)     at SecurePair.maybeInitFinishe

[Cordova] 无法编译Visual Studio项目里Plugin副本的Native Code

[Cordova] 无法编译Visual Studio项目里Plugin副本的Native Code 问题情景 开发Cordova Plugin的时候,开发的流程应该是: 建立Cordova Plugin 发布到本机文件系统或是Git服务器 使用Visual Studio挂载Plugin 编译并执行项目 在这个开发的过程中,如果在编译并执行项目的这个步骤,发现Plugin的Native Code需要修正.直觉的想法,会是直接修改Cordova项目里Plugin副本的Native Code之后,再