mirror of
https://github.com/danielsogl/awesome-cordova-plugins.git
synced 2025-02-21 00:23:00 +08:00
feat(inAppPurchase): add inAppPurchase
This commit is contained in:
parent
2fe37c461c
commit
f1988f67f5
@ -47,6 +47,7 @@ import {Httpd} from './plugins/httpd';
|
||||
import {IBeacon} from './plugins/ibeacon';
|
||||
import {ImagePicker} from './plugins/imagepicker';
|
||||
import {InAppBrowser} from './plugins/inappbrowser';
|
||||
import {InAppPurchase} from './plugins/inapppurchase';
|
||||
import {Insomnia} from './plugins/insomnia';
|
||||
import {Keyboard} from './plugins/keyboard';
|
||||
import {LaunchNavigator} from './plugins/launchnavigator';
|
||||
@ -125,6 +126,7 @@ export {
|
||||
GooglePlus,
|
||||
GoogleAnalytics,
|
||||
Hotspot,
|
||||
InAppPurchase,
|
||||
Insomnia,
|
||||
Keyboard,
|
||||
Network,
|
||||
@ -187,6 +189,7 @@ window['IonicNative'] = {
|
||||
IBeacon: IBeacon,
|
||||
ImagePicker: ImagePicker,
|
||||
InAppBrowser: InAppBrowser,
|
||||
InAppPurchase: InAppPurchase,
|
||||
Keyboard: Keyboard,
|
||||
LaunchNavigator: LaunchNavigator,
|
||||
LocalNotifications: LocalNotifications,
|
||||
|
109
src/plugins/inapppurchase.ts
Normal file
109
src/plugins/inapppurchase.ts
Normal file
@ -0,0 +1,109 @@
|
||||
import {Plugin, Cordova} from './plugin';
|
||||
|
||||
|
||||
/**
|
||||
* @name InAppPurchase
|
||||
* @description
|
||||
* A lightweight Cordova plugin for in app purchases on iOS/Android.
|
||||
*
|
||||
* For more info, please see the [InAppPurchase plugin docs](https://github.com/AlexDisler/cordova-plugin-inapppurchase).
|
||||
*
|
||||
* @usage
|
||||
* ```ts
|
||||
* import {InAppPurchase} from 'ionic-native';
|
||||
*
|
||||
* InAppPurchase
|
||||
* .getProducts(['com.yourapp.prod1', 'com.yourapp.prod2', ...])
|
||||
* .then((products) => {
|
||||
* console.log(products);
|
||||
* // [{ productId: 'com.yourapp.prod1', 'title': '...', description: '...', price: '...' }, ...]
|
||||
* })
|
||||
* .catch((err) => {
|
||||
* console.log(err);
|
||||
* });
|
||||
*
|
||||
*
|
||||
* InAppPurchase
|
||||
* .buy('com.yourapp.prod1')
|
||||
* .then((data)=> {
|
||||
* console.log(data);
|
||||
* // {
|
||||
* // transactionId: ...
|
||||
* // receipt: ...
|
||||
* // signature: ...
|
||||
* // }
|
||||
* })
|
||||
* .catch((err)=> {
|
||||
* console.log(err);
|
||||
* });
|
||||
*
|
||||
* ```
|
||||
*
|
||||
* @advanced
|
||||
*
|
||||
* ```ts
|
||||
* // fist buy the product...
|
||||
* InAppPurchase
|
||||
* .buy('com.yourapp.consumable_prod1')
|
||||
* .then(data => InAppPurchase.consume(data.productType, data.receipt, data.signature))
|
||||
* .then(() => console.log('product was successfully consumed!'))
|
||||
* .catch( err=> console.log(err))
|
||||
* ```
|
||||
*
|
||||
*
|
||||
*/
|
||||
@Plugin({
|
||||
plugin: 'cordova-plugin-inapppurchase',
|
||||
pluginRef: 'inAppPurchase',
|
||||
platforms: ['Android', 'iOS']
|
||||
})
|
||||
export class InAppPurchase {
|
||||
|
||||
/**
|
||||
* Retrieves a list of full product data from Apple/Google. This method must be called before making purchases.
|
||||
* @param {array<string>} productId an array of product ids.
|
||||
* @returns {Promise} Returns a Promise that resolves with an array of objects.
|
||||
*/
|
||||
@Cordova()
|
||||
static getProducts(productId: array<string>): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Buy a product that matches the productId.
|
||||
* @param {string} productId A string that matches the product you want to buy.
|
||||
* @returns {Promise} Returns a Promise that resolves with the transaction details.
|
||||
*/
|
||||
@Cordova()
|
||||
static buy(productId: string): Promise<{transactionId: string, receipt: string, signature: string, productType: string}> { return; }
|
||||
|
||||
/**
|
||||
* Same as buy, but for subscription based products.
|
||||
* @param {string} productId A string that matches the product you want to subscribe to.
|
||||
* @returns {Promise} Returns a Promise that resolves with the transaction details.
|
||||
*/
|
||||
@Cordova()
|
||||
static subscribe(productId: string): Promise<{transactionId: string, receipt: string, signature: string, productType: string}> { return; }
|
||||
|
||||
/**
|
||||
* Call this function after purchasing a "consumable" product to mark it as consumed. On Android, you must consume products that you want to let the user purchase multiple times. If you will not consume the product after a purchase, the next time you will attempt to purchase it you will get the error message:
|
||||
* @param {string} productType
|
||||
* @param {string} receipt
|
||||
* @param {string} signature
|
||||
*/
|
||||
@Cordova()
|
||||
static consume(productType: string, receipt: string, signature: string): void { }
|
||||
|
||||
/**
|
||||
* Restore all purchases from the store
|
||||
* @returns {Promise} Returns a promise with an array of purchases.
|
||||
*/
|
||||
@Cordova()
|
||||
static restorePurchases(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Get the receipt.
|
||||
* @returns {Promise<string>} Returns a promise that contains the string for the receipt
|
||||
*/
|
||||
@Cordova()
|
||||
static getReceipt(): Promise<string> { return; }
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user