Skip to content

Instantly share code, notes, and snippets.

View j3k0's full-sized avatar

Jean-Christophe Hoelt j3k0

View GitHub Profile
@j3k0
j3k0 / override-set-timeout-a.js
Last active October 28, 2022 02:24
setTimeout based on the audioContext timer
function customTimeoutFunction(audioContext) {
let tasks = [];
let nextTaskId = 1;
function now() {
return audioContext.currentTime * 1000;
}
function scheduler() {
@j3k0
j3k0 / index.ts
Last active May 6, 2025 10:54
cordova-purchase-plugin v13 - micro example
document.addEventListener('deviceready', onDeviceReady);
function onDeviceReady() {
const store = CdvPurchase.store;
const { ProductType, Platform, LogLevel, Product, VerifiedReceipt } = CdvPurchase; // shortcuts
// We should first register all our products or we cannot use them in the app.
store.register([{
id: 'demo_monthly_basic',
@j3k0
j3k0 / index.html
Created November 8, 2022 11:48
Cordova In-App Purchase Documentation / index.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<title>Hello World</title>
</head>
<body>
import 'cordova-plugin-purchase';
document.addEventListener('deviceready', onDeviceReady);
let log: CdvPurchase.Logger;
let statusMessage: null | string = null;
function setStatusMessage(value: null | string) {
if (statusMessage !== value) {
statusMessage = value;
renderStatusUI();