mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-10-04 06:47:03 +00:00
Merge pull request #22269 from broder/onesignal-cordova-sdk
Add typings for onesignal-cordova-sdk
This commit is contained in:
+201
@@ -0,0 +1,201 @@
|
||||
// Type definitions for onesignal-cordova-plugin 2.2
|
||||
// Project: https://github.com/onesignal/OneSignal-Cordova-SDK#readme
|
||||
// Definitions by: David Broder-Rodgers <https://github.com/broder>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
interface Window {
|
||||
plugins: { OneSignal: OneSignalCordovaPlugin.OneSignalCordovaPlugin };
|
||||
}
|
||||
|
||||
declare namespace OneSignalCordovaPlugin {
|
||||
interface OneSignalCordovaPlugin {
|
||||
startInit(appId: string): OneSignalBuilder;
|
||||
promptForPushNotificationsWithUserResponse(callback: (accepted: boolean) => void): void;
|
||||
getPermissionSubscriptionState(callback: (status: OSPermissionSubscriptionState) => void): void;
|
||||
addPermissionObserver(callback: (state: OSPermissionState) => void): void;
|
||||
addSubscriptionObserver(callback: (state: OSSubscriptionState) => void): void;
|
||||
getTags(callback: (tags: any) => void): void;
|
||||
sendTag(key: string, value: string): void;
|
||||
sendTags(tags: { [key: string]: string }): void;
|
||||
deleteTag(key: string): void;
|
||||
deleteTags(keys: string[]): void;
|
||||
promptLocation(): void;
|
||||
syncHashedEmail(email: string): void;
|
||||
postNotification(notificationObj: any, onSuccess: (json: any) => void, onFailure: (json: any) => void): void;
|
||||
clearOneSignalNotifications(): void;
|
||||
setSubscription(enable: boolean): void;
|
||||
enableVibrate(enable: boolean): void;
|
||||
enableSound(enable: boolean): void;
|
||||
setLogLevel(logLevel: { logLevel: number, visualLevel: number }): void;
|
||||
getIds(callback: (id: { userId: string; pushToken: string }) => void): void;
|
||||
registerForPushNotifications(): void;
|
||||
}
|
||||
|
||||
interface OneSignalBuilder {
|
||||
handleNotificationReceived(callback: (json: OSNotification) => void): OneSignalBuilder;
|
||||
handleNotificationOpened(callback: (json: OSNotificationOpenedResult) => void): OneSignalBuilder;
|
||||
inFocusDisplaying(displayOption: OSDisplayType): OneSignalBuilder;
|
||||
iOSSettings(settings: {
|
||||
kOSSettingsKeyAutoPrompt: boolean;
|
||||
kOSSettingsKeyInAppLaunchURL: boolean;
|
||||
}): OneSignalBuilder;
|
||||
endInit(): void;
|
||||
}
|
||||
|
||||
interface OSNotification {
|
||||
isAppInFocus: boolean;
|
||||
shown: boolean;
|
||||
androidNotificationId?: number;
|
||||
payload: OSNotificationPayload;
|
||||
displayType: OSDisplayType;
|
||||
groupedNotifications?: OSNotificationPayload[];
|
||||
app_id?: string;
|
||||
contents: any;
|
||||
headings?: any;
|
||||
isIos?: boolean;
|
||||
isAndroid?: boolean;
|
||||
isWP?: boolean;
|
||||
isWP_WNS?: boolean;
|
||||
isAdm?: boolean;
|
||||
isChrome?: boolean;
|
||||
isChromeWeb?: boolean;
|
||||
isSafari?: boolean;
|
||||
isAnyWeb?: boolean;
|
||||
included_segments?: string[];
|
||||
excluded_segments?: string[];
|
||||
include_player_ids?: string[];
|
||||
include_ios_tokens?: string[];
|
||||
include_android_reg_ids?: string[];
|
||||
include_wp_uris?: string[];
|
||||
include_wp_wns_uris?: string[];
|
||||
include_amazon_reg_ids?: string[];
|
||||
include_chrome_reg_ids?: string[];
|
||||
include_chrome_web_reg_ids?: string[];
|
||||
app_ids?: string[];
|
||||
tags?: any[];
|
||||
ios_badgeType?: string;
|
||||
ios_badgeCount?: number;
|
||||
ios_sound?: string;
|
||||
android_sound?: string;
|
||||
adm_sound?: string;
|
||||
wp_sound?: string;
|
||||
wp_wns_sound?: string;
|
||||
data?: any;
|
||||
buttons?: any;
|
||||
small_icon?: string;
|
||||
large_icon?: string;
|
||||
big_picture?: string;
|
||||
adm_small_icon?: string;
|
||||
adm_large_icon?: string;
|
||||
adm_big_picture?: string;
|
||||
chrome_icon?: string;
|
||||
chrome_big_picture?: string;
|
||||
chrome_web_icon?: string;
|
||||
firefox_icon?: string;
|
||||
url?: string;
|
||||
send_after?: string;
|
||||
delayed_option?: string;
|
||||
delivery_time_of_day?: string;
|
||||
android_led_color?: string;
|
||||
android_accent_color?: string;
|
||||
android_visibility?: number;
|
||||
content_available?: boolean;
|
||||
amazon_background_data?: boolean;
|
||||
template_id?: string;
|
||||
android_group?: string;
|
||||
android_group_message?: any;
|
||||
adm_group?: string;
|
||||
adm_group_message?: any;
|
||||
ttl?: number;
|
||||
priority?: number;
|
||||
ios_category?: string;
|
||||
}
|
||||
|
||||
interface OSNotificationPayload {
|
||||
notificationID: string;
|
||||
title: string;
|
||||
body: string;
|
||||
additionalData?: any;
|
||||
smallIcon?: string;
|
||||
largeIcon?: string;
|
||||
bigPicture?: string;
|
||||
smallIconAccentColor?: string;
|
||||
launchURL?: string;
|
||||
sound: string;
|
||||
ledColor?: string;
|
||||
lockScreenVisibility?: OSLockScreenVisibility;
|
||||
groupKey?: string;
|
||||
groupMessage?: string;
|
||||
actionButtons: OSActionButton[];
|
||||
fromProjectNumber?: string;
|
||||
backgroundImageLayout?: OSBackgroundImageLayout;
|
||||
priority?: number;
|
||||
rawPayload: string;
|
||||
}
|
||||
|
||||
interface OSActionButton {
|
||||
id: string;
|
||||
text: string;
|
||||
icon: string;
|
||||
}
|
||||
|
||||
interface OSPermissionState {
|
||||
hasPrompted: boolean;
|
||||
status: OSNotificationPermission;
|
||||
}
|
||||
|
||||
interface OSSubscriptionState {
|
||||
subscribed: boolean;
|
||||
userSubscriptionSetting: any;
|
||||
userId: any;
|
||||
pushToken: any;
|
||||
}
|
||||
|
||||
interface OSPermissionSubscriptionState {
|
||||
permissionStatus: OSPermissionState;
|
||||
subscriptionStatus: OSSubscriptionState;
|
||||
}
|
||||
|
||||
interface OSBackgroundImageLayout {
|
||||
image: string;
|
||||
titleTextColor: string;
|
||||
bodyTextColor: string;
|
||||
}
|
||||
|
||||
interface OSNotificationOpenedResult {
|
||||
action: {
|
||||
type: OSActionType;
|
||||
actionID?: string;
|
||||
};
|
||||
notification: OSNotification;
|
||||
}
|
||||
|
||||
const enum OSLockScreenVisibility {
|
||||
Public = 1,
|
||||
Private = 0,
|
||||
Secret = -1
|
||||
}
|
||||
|
||||
const enum OSDisplayType {
|
||||
None = 0,
|
||||
InAppAlert = 1,
|
||||
Notification = 2
|
||||
}
|
||||
|
||||
const enum OSActionType {
|
||||
Opened = 0,
|
||||
ActionTake = 1
|
||||
}
|
||||
|
||||
const enum OSInFocusDisplayOption {
|
||||
None = 0,
|
||||
InAppAlert = 1,
|
||||
Notification = 2
|
||||
}
|
||||
|
||||
const enum OSNotificationPermission {
|
||||
NotDetermined = 0,
|
||||
Authorized = 1,
|
||||
Denied = 2,
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
window.plugins.OneSignal
|
||||
.startInit("YOUR_APPID")
|
||||
.handleNotificationReceived((jsonData) => {
|
||||
console.log("Notification received:\n" + JSON.stringify(jsonData));
|
||||
})
|
||||
.handleNotificationOpened((jsonData) => {
|
||||
console.log("Notification opened:\n" + JSON.stringify(jsonData));
|
||||
})
|
||||
.inFocusDisplaying(OneSignalCordovaPlugin.OSDisplayType.Notification)
|
||||
.iOSSettings({
|
||||
kOSSettingsKeyAutoPrompt: true,
|
||||
kOSSettingsKeyInAppLaunchURL: false,
|
||||
})
|
||||
.endInit();
|
||||
|
||||
window.plugins.OneSignal.promptForPushNotificationsWithUserResponse((accepted) => {
|
||||
console.log("User accepted notifications: " + accepted);
|
||||
});
|
||||
|
||||
window.plugins.OneSignal.addPermissionObserver((state) => {
|
||||
console.log("Notification permission state changed: " + JSON.stringify(state));
|
||||
});
|
||||
|
||||
window.plugins.OneSignal.addSubscriptionObserver((state) => {
|
||||
if (!state.subscribed) {
|
||||
console.log("Subscribed for OneSignal push notifications!");
|
||||
}
|
||||
console.log("Push Subscription state changed: " + JSON.stringify(state));
|
||||
});
|
||||
|
||||
window.plugins.OneSignal.getTags((tags) => {
|
||||
console.log('Tags Received: ' + JSON.stringify(tags));
|
||||
});
|
||||
|
||||
window.plugins.OneSignal.sendTag("key", "value");
|
||||
|
||||
window.plugins.OneSignal.deleteTag("key");
|
||||
|
||||
window.plugins.OneSignal.sendTags({ key1: "value", key2: "value2" });
|
||||
|
||||
window.plugins.OneSignal.deleteTags(["key1", "key2"]);
|
||||
|
||||
window.plugins.OneSignal.promptLocation();
|
||||
|
||||
window.plugins.OneSignal.syncHashedEmail("John.Smith@example.com");
|
||||
|
||||
window.plugins.OneSignal.getIds((ids) => {
|
||||
const notificationObj = {
|
||||
contents: { en: "message body" },
|
||||
include_player_ids: [ids.userId]
|
||||
};
|
||||
window.plugins.OneSignal.postNotification(notificationObj,
|
||||
(successResponse) => {
|
||||
console.log("Notification Post Success:", successResponse);
|
||||
},
|
||||
(failedResponse) => {
|
||||
console.log("Notification Post Failed: ", failedResponse);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
window.plugins.OneSignal.clearOneSignalNotifications();
|
||||
|
||||
window.plugins.OneSignal.setSubscription(false);
|
||||
|
||||
window.plugins.OneSignal.enableVibrate(false);
|
||||
|
||||
window.plugins.OneSignal.enableSound(false);
|
||||
|
||||
window.plugins.OneSignal.setLogLevel({ logLevel: 4, visualLevel: 4 });
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6",
|
||||
"dom"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"onesignal-cordova-plugin-tests.ts"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Reference in New Issue
Block a user