{"_id":"moguasdk","_rev":"44-8a4a98d955b16dafb7d4bc709b7d1836","name":"moguasdk","dist-tags":{"latest":"1.1.3"},"versions":{"0.6.0":{"name":"moguasdk","version":"0.6.0","keywords":["mogua"],"author":{"name":"mogua"},"license":"ISC","_id":"moguasdk@0.6.0","maintainers":[{"name":"omnimind.sg","email":"omnimind.sg@gmail.com"}],"dist":{"shasum":"089b44a68acd5eddd8c8e895636f6b589fa072ac","tarball":"https://registry.npmjs.org/moguasdk/-/moguasdk-0.6.0.tgz","fileCount":5,"integrity":"sha512-K9JCsUlpP/QnqSfqt65CJAami4P0hIQXt0tMgX/9r5CbYm4yZlFVeVze0/qsGFMB4cSaHfmjfTOZQhAdR+dJrg==","signatures":[{"sig":"MEYCIQDnD1MRP/USVIXpGYkvEINYpQT2cp7+JubQpC2Afnx49AIhAKMT42AX3fnTfwEugYosEO8dTDpXpfaxeNoiu3O9G4Ov","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15322},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsup"},"_npmUser":{"name":"omnimind.sg","email":"omnimind.sg@gmail.com"},"_npmVersion":"9.8.1","description":"mogua sdk for web usage","directories":{},"_nodeVersion":"18.18.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","ts-node":"^10.9.2","typescript":"^5.3.3"},"_npmOperationalInternal":{"tmp":"tmp/moguasdk_0.6.0_1720118495503_0.436205310884767","host":"s3://npm-registry-packages"}},"0.6.2":{"name":"moguasdk","version":"0.6.2","keywords":["mogua"],"author":{"name":"mogua"},"license":"ISC","_id":"moguasdk@0.6.2","maintainers":[{"name":"omnimind.sg","email":"omnimind.sg@gmail.com"}],"dist":{"shasum":"56eb6f0b5967231862af0440e20780e9e1f1c9ba","tarball":"https://registry.npmjs.org/moguasdk/-/moguasdk-0.6.2.tgz","fileCount":5,"integrity":"sha512-EM6fBPK0moCiDtvPYpgQaQ17igyhIB/C4rhEeYzJ5lF0OReaoDn9CXsjVN4Wu5SsB7lOj6Gjtl20/Qc4LCthew==","signatures":[{"sig":"MEUCIQDewENq0KtgqfvdCksDDzHot3xVbveq3IVgSkS7eX1HxQIgK6s+HdBwWRjcdBC/v5YDT9RZ1VYPE0QD5ph5RS4WCeU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27351},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsup"},"_npmUser":{"name":"omnimind.sg","email":"omnimind.sg@gmail.com"},"_npmVersion":"9.8.1","description":"mogua sdk for web usage","directories":{},"_nodeVersion":"18.18.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","ts-node":"^10.9.2","typescript":"^5.3.3"},"_npmOperationalInternal":{"tmp":"tmp/moguasdk_0.6.2_1720260525089_0.9721173006171748","host":"s3://npm-registry-packages"}},"0.7.0":{"name":"moguasdk","version":"0.7.0","keywords":["mogua"],"author":{"name":"mogua"},"license":"ISC","_id":"moguasdk@0.7.0","maintainers":[{"name":"omnimind.sg","email":"omnimind.sg@gmail.com"}],"dist":{"shasum":"b0f7e5f3835b235c63d5520d9f80996da1673ef2","tarball":"https://registry.npmjs.org/moguasdk/-/moguasdk-0.7.0.tgz","fileCount":5,"integrity":"sha512-aDqaDwI67cDehgGMMGym9ljkTpVx4Nm+G00XxGTzhavh9PT1ZeV/ZgjZSlnVG+8brappXfd+G8gv+BC5vVSzwA==","signatures":[{"sig":"MEYCIQDSWmGasuzbTTFP2QLwigkvPVXzbnUnoHAI/AnGK5ZKMwIhAKsoBuXV33XCMnAkvYTrEgIfiDz5Z/+YWBC/3WueMVUT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32773},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsup"},"_npmUser":{"name":"omnimind.sg","email":"omnimind.sg@gmail.com"},"_npmVersion":"9.8.1","description":"mogua sdk for web usage","directories":{},"_nodeVersion":"18.18.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","ts-node":"^10.9.2","typescript":"^5.3.3"},"_npmOperationalInternal":{"tmp":"tmp/moguasdk_0.7.0_1720714584194_0.5117743001746073","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"moguasdk","version":"1.1.0","keywords":["mogua"],"author":{"name":"mogua"},"license":"ISC","_id":"moguasdk@1.1.0","maintainers":[{"name":"omnimind.sg","email":"omnimind.sg@gmail.com"}],"dist":{"shasum":"fd4d9c7cbb883d5c68a05206ac4a54dbb859625d","tarball":"https://registry.npmjs.org/moguasdk/-/moguasdk-1.1.0.tgz","fileCount":5,"integrity":"sha512-Cr/mNrfJqRQjGxEpoeh0lURHyW+SQ1syghJRacdQ7C4PZ71IGM6dPTaaOQktfSxvTcLYKKrIbFOb+HaV0J7VbA==","signatures":[{"sig":"MEUCIQCLBeBW7osxsqReR+6+hFWrMN9hlniwZB5SbWvHS5yalwIgEk62PmK0BAubXBrSl10hEDSKWEFjTYTOPvPYMN118gY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19012},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsup"},"_npmUser":{"name":"omnimind.sg","email":"omnimind.sg@gmail.com"},"_npmVersion":"9.8.1","description":"mogua sdk for web usage","directories":{},"_nodeVersion":"18.18.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","ts-node":"^10.9.2","typescript":"^5.3.3"},"_npmOperationalInternal":{"tmp":"tmp/moguasdk_1.1.0_1720844315744_0.02436118202601323","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"moguasdk","version":"1.1.1","keywords":["mogua"],"author":{"name":"mogua"},"license":"ISC","_id":"moguasdk@1.1.1","maintainers":[{"name":"omnimind.sg","email":"omnimind.sg@gmail.com"}],"dist":{"shasum":"c9decdde24a120516450ce64f48672a6bbb74d15","tarball":"https://registry.npmjs.org/moguasdk/-/moguasdk-1.1.1.tgz","fileCount":5,"integrity":"sha512-rPt1MaUEfuglBa1fsK4+q4JhBtoAhNWCU8sUVGQHnH36JUw645mhMluJxFJdHkc3WDL8qIOdnc1NTFKSbJpN1Q==","signatures":[{"sig":"MEUCIQD+YNuz0NojOaP5yZZNjsdSqXEkXppSkoNj0LLynPbMzAIgbP3JCkgMBHzni/m9w3faTHBY6kCl7kfv45jWiW50O+I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19198},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"40c06ba482a9ee264873b7aa075d24206f1fddee","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsup"},"_npmUser":{"name":"omnimind.sg","email":"omnimind.sg@gmail.com"},"_npmVersion":"10.8.2","description":"mogua sdk for web usage","directories":{},"_nodeVersion":"22.6.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","ts-node":"^10.9.2","typescript":"^5.3.3"},"_npmOperationalInternal":{"tmp":"tmp/moguasdk_1.1.1_1728321919144_0.25987297177987667","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"moguasdk","version":"1.1.2","keywords":["mogua"],"author":{"name":"mogua"},"license":"ISC","_id":"moguasdk@1.1.2","maintainers":[{"name":"omnimind.sg","email":"omnimind.sg@gmail.com"}],"dist":{"shasum":"d3c9f8358e51fd6b1405d39988d8cebe8adb18e0","tarball":"https://registry.npmjs.org/moguasdk/-/moguasdk-1.1.2.tgz","fileCount":5,"integrity":"sha512-hV8PyzLXs4I/E1iMROkbpKJflBPOL4kxTjblTd2qIi8D9D39fqorBv8NQaUhVPut3aaonf+iUBIQatV3FGFbmA==","signatures":[{"sig":"MEUCIQCyS7by+kG4l3Yb65vchLLGh8CD6AvC76dsiaN8+S9yWwIgD36NwlCjiCtZsAFtwZV11CON6ACo2GCfxEBkLyp9v1E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19476},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"40c06ba482a9ee264873b7aa075d24206f1fddee","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsup"},"_npmUser":{"name":"omnimind.sg","email":"omnimind.sg@gmail.com"},"_npmVersion":"10.8.2","description":"mogua sdk for web usage","directories":{},"_nodeVersion":"22.6.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","ts-node":"^10.9.2","typescript":"^5.3.3"},"_npmOperationalInternal":{"tmp":"tmp/moguasdk_1.1.2_1728836089944_0.33296729306469586","host":"s3://npm-registry-packages"}},"1.1.3":{"name":"moguasdk","type":"commonjs","version":"1.1.3","description":"mogua sdk for web usage","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"scripts":{"build":"tsup","test":"echo \"Error: no test specified\" && exit 1"},"keywords":["mogua"],"author":{"name":"mogua"},"license":"ISC","devDependencies":{"ts-node":"^10.9.2","tsup":"^8.0.1","typescript":"^5.3.3"},"_id":"moguasdk@1.1.3","gitHead":"c07a852008954b98e2b3c648898cb0243e0b3493","_nodeVersion":"22.6.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-AUiOwwnVHd7oM8jipHHLa7wnB2V7xn2DIEvaj+I3ZjxmkJZP/pR7XmCYJcnMdRK30ZyyTKmJV8QrhyuaSRFoHw==","shasum":"f39e4754f55121a179a3a2cd4475420795975dce","tarball":"https://registry.npmjs.org/moguasdk/-/moguasdk-1.1.3.tgz","fileCount":6,"unpackedSize":26185,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBTf2WmpEh9uXkEnfpk5s5cIA5LULvqc2xRuq6OjZ7J8AiEAqv4us/mxQA0Ycldh6Yt/vYQfm3qYg87cG8RVjJfZZNk="}]},"_npmUser":{"name":"omnimind.sg","email":"omnimind.sg@gmail.com"},"directories":{},"maintainers":[{"name":"omnimind.sg","email":"omnimind.sg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/moguasdk_1.1.3_1730909556031_0.20282601811348777"},"_hasShrinkwrap":false}},"time":{"created":"2024-04-21T15:27:49.583Z","modified":"2024-11-06T16:12:36.516Z","1.0.8":"2024-04-06T15:16:38.034Z","1.0.9":"2024-04-07T16:36:39.506Z","1.0.10":"2024-04-07T16:37:34.789Z","1.0.11":"2024-04-07T16:40:46.847Z","1.0.12":"2024-04-08T15:24:46.997Z","1.0.13":"2024-04-08T17:24:33.090Z","1.0.14":"2024-04-13T11:14:50.099Z","0.1.14":"2024-04-21T15:27:49.744Z","0.1.15":"2024-04-21T16:16:08.114Z","0.1.16":"2024-05-02T13:14:45.036Z","0.1.17":"2024-05-05T10:55:28.188Z","0.1.18":"2024-05-23T17:44:42.832Z","0.1.19":"2024-05-26T18:34:56.556Z","0.1.20":"2024-06-29T17:58:25.100Z","0.2.1":"2024-06-30T13:08:35.436Z","0.2.2":"2024-06-30T14:49:35.969Z","0.2.3":"2024-06-30T15:00:18.450Z","0.2.4":"2024-06-30T16:26:59.014Z","0.2.5":"2024-07-02T15:57:04.904Z","0.2.6":"2024-07-02T16:18:00.178Z","0.2.7":"2024-07-04T18:34:54.618Z","0.6.0":"2024-07-04T18:41:35.682Z","0.6.1":"2024-07-06T07:10:00.706Z","0.6.2":"2024-07-06T10:08:45.216Z","0.7.0":"2024-07-11T16:16:24.388Z","1.1.0":"2024-07-13T04:18:35.924Z","1.1.1":"2024-10-07T17:25:19.431Z","1.1.2":"2024-10-13T16:14:50.154Z","1.1.3":"2024-11-06T16:12:36.354Z"},"author":{"name":"mogua"},"license":"ISC","keywords":["mogua"],"description":"mogua sdk for web usage","maintainers":[{"name":"omnimind.sg","email":"omnimind.sg@gmail.com"}],"readme":"## Web\n\nIntegrate MoguaSDK and collect parameters from your website.\n\n---\n&nbsp;  \n\n### 1. Authentication\n\nUse the following **App Key** to initialize the SDK.\n\n[//]: # (appConfig=\"AppAuthConfig\", android=\"false\", ios=\"false\")\n&nbsp;  \n\n---\n&nbsp;  \n\n### 2. Install the SDK\n\nInstall the SDK using [**npm**](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm):\n\n[//]: # (target=\"Command Line\")\n```sh\nnpm install moguasdk\n```\n&nbsp;  \n\nFor websites not using npm or modules, we also provide a UMD build.\nThe UMD build exports a global `Mogua` Class.\n\n[//]: # (language=\"HTML\", target=\"Example\")\n```html\n<script src=\"https://www.mogua.io/script/moguasdk/index.umd.js\" ></script>\n```\n&nbsp;  \n\n---\n&nbsp;  \n\n### 3. Initialize the SDK\n\nYou need to initialize the SDK before any usage.\n\n[//]: # (language=\"TypeScript\", target=\"Example\")\n```tsx\nimport { Mogua } from 'moguasdk';\n\nMogua.init('${appKey}');\n```\n[//]: # (language=\"HTML\", target=\"Example\")\n```html\n<script src=\"https://www.mogua.io/script/moguasdk/index.umd.js\" ></script>\n<script>\n\tMogua.init('${appKey}');\n</script>\n```\n&nbsp;  \n\n---\n&nbsp;  \n\n### 4. Collect the parameters\n\nThe SDK will automatically fetch query parameters from the **current URL** (e.g., `https://www.mogua.io?key1=value1&key2=value2...`) and upload them to the Mogua server for later use in your app.\n\nYou can also manually define parameters while initialization:\n\n[//]: # (language=\"TypeScript\", target=\"Example\")\n```tsx\nimport { Mogua } from 'moguasdk';\n\nMogua.init({\n\tappKey: '${appKey}',\n\tparams: { key1: 'value1', key2: 'value2', ... }\n});\n```\n[//]: # (language=\"HTML\", target=\"Example\")\n```html\n<script src=\"https://www.mogua.io/script/moguasdk/index.umd.js\" ></script>\n<script>\n\tMogua.init({\n\t\tappKey: '${appKey}',\n\t\tparams: { key1: 'value1', key2: 'value2', ... }\n\t});\n</script>\n```\n&nbsp;  \n\n---\n&nbsp;  \n\n### 5. Pass the parameters\n\nAfter initialization, you can call the `openOrDownload` method, typically when the user clicks a download button:\n\n[//]: # (language=\"TypeScript\", target=\"Example\")\n```tsx\nconst onButtonClick = () => {\n\tMogua.openOrDownload();\n}\n```\n[//]: # (language=\"HTML\", target=\"Example\")\n```html\n<script>\n\tfunction onButtonClick() {\n\t\tMogua.openOrDownload();\n\t}\n</script>\n```\n&nbsp;  \n\nThe MoguaSDK initiates the Deep Linking process through the following steps:\n\n1. If the app is already installed on the device, the SDK will attempt to open the app and pass the parameters directly (**Direct Deep Linking**).\n\n2. If the app is not installed, the SDK will redirect the user to the **Download URL** configured in the Dashboard. After downloading and installing the app, the parameters will be retrieved during the app launch (**Deferred Deep Linking**).\n\nAlternatively, the `openOrDownload` method accepts an argument of type `MoguaInterceptor`, allowing you to implement custom logic for opening or downloading the app:\n\n[//]: # (language=\"TypeScript\", target=\"Definition\")\n```tsx\ntype UrlHandler = (url: string | undefined) => string | undefined\n\ninterface MoguaInterceptor {\n\tonOpen?: UrlHandler;\n\tonDownload?: UrlHandler;\n\tonError?: (error: MoguaError) => void;\n}\n\nconst openOrDownload = (interceptor?: MoguaInterceptor) => void;\n```\n&nbsp;  \n\nFor instance, you can return `undefined` in the `onOpen` callback to disable the app-opening feature:\n\n[//]: # (language=\"TypeScript\", target=\"Example\")\n```tsx\nMogua.openOrDownload({\n\tonOpen: (url: string | undefined) => {\n\t\treturn undefined;\n\t},\n});\n```\n[//]: # (language=\"HTML\", target=\"Example\")\n```javascript\nMogua.openOrDownload({\n\tonOpen: url => {\n\t\treturn undefined\n\t}\n})\n```\n&nbsp;  \n\nAlternatively, you can modify the `Download URL` based on the user’s device in the `onDownload` callback:\n\n[//]: # (language=\"TypeScript\", target=\"Example\")\n```tsx\nMogua.openOrDownload({\n\tonOpen: (url: string | undefined) => {\n\t\treturn undefined;\n\t},\n\tonDownload: (url: string | undefined) => {\n\t\tif (isAndroidTablet()) {\n\t\t\treturn 'https://somewhere/app-for-android-tablet.apk';\n\t\t}\n\t\treturn url;\n\t},\n});\n```\n[//]: # (language=\"HTML\", target=\"Example\")\n```javascript\nMogua.openOrDownload({\n\tonOpen: url => {\n\t\treturn undefined;\n\t},\n\tonDownload: url => {\n\t\tif (isAndroidTablet()) {\n\t\t\treturn 'https://somewhere/app-for-android-tablet.apk';\n\t\t}\n\t\treturn url;\n\t}\n})\n```\n&nbsp;  \n\nTo start the download automatically, call the `openOrDownload` method within the `onSuccess` callback of the `init` method:\n\n[//]: # (language=\"TypeScript\", target=\"Example\")\n```tsx\nimport { Mogua } from 'moguasdk';\n\nMogua.init({\n\tappKey: '${appKey}',\n\tparams: { key1: 'value1', key2: 'value2', ... },\n\tonSuccess: () => {\n\t\tMogua.openOrDownload();\n\t},\n});\n```\n[//]: # (language=\"HTML\", target=\"Example\")\n```html\n<script src=\"https://www.mogua.io/script/moguasdk/index.umd.js\" ></script>\n<script>\n\tMogua.init({\n\t\tappKey: '${appKey}',\n\t\tparams: { key1: 'value1', key2: 'value2', ... },\n\t\tonSuccess: () => {\n\t\t\tMogua.openOrDownload();\n\t\t},\n\t});\n</script>>\n```\n&nbsp;  \n\n---\n&nbsp;  \n\n### 6. Full Example\n\nThis example demonstrates a complete setup for initializing the MoguaSDK, handling parameters, and triggering the download process. When calling the `openOrDownload` method outside of the `onSuccess` callback of `init` method, call the `isReady` method first to ensure no exceptions occur while initialization.\n\n[//]: # (language=\"TypeScript\", target=\"Example\")\n```tsx\nimport { Mogua } from 'moguasdk';\n\nMogua.init({\n\tappKey: '${appKey}',\n\tparams: { key1: 'value1', key2: 'value2', ... }\n});\n\nconst onButtonClick = () => {\n\tif (Mouga.isReady()) {\n\t\tMogua.openOrDownload({\n\t\t\tonDownload: (url: string | undefined) => {\n\t\t\t\tif (isAndroidTablet()) {\n\t\t\t\t\treturn 'https://somewhere/app-for-android-tablet.apk';\n\t\t\t\t}\n\t\t\t\treturn url;\n\t\t\t},\n\t\t});\n\t} else {\n\t\twindow.location.href = 'https://somewhere/app-download-site';\n\t}\n}\n\nconst App: React.FC = () => {\n\treturn <Button onClick={onButtonClick}>Download App</Button>;\n}\n```\n[//]: # (language=\"HTML\", target=\"Example\")\n```html\n<head>\n\t<!-- Other tags -->\n\t<script src=\"https://www.mogua.io/script/moguasdk/index.umd.js\" ></script>\n\t<script>\n\t\tMogua.init({\n\t\t\tappKey: '${appKey}',\n\t\t\tparams: { key1: 'value1', key2: 'value2' }\n\t\t});\n\n\t\tfunction onButtonClick() {\n\t\t\tif (Mogua.isReady()) {\n\t\t\t\tMogua.openOrDownload({\n\t\t\t\t\tonDownload: url => {\n\t\t\t\t\t\tif (isAndroidTablet()) {\n\t\t\t\t\t\t\treturn 'https://somewhere/app-for-android-tablet.apk';\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn url;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\twindow.location.href = 'https://somewhere/app-download-site';\n\t\t\t}\n\t\t}\n\t</script>\n</head>\n<body>\n\t<!-- Other tags -->\n\t<button onclick=\"onButtonClick()\">Download App</button>\n</body>\n```\n&nbsp;  \n\n---\n&nbsp;  \n\nNeed help? <a href='mailto:hello@mogua.io'>Contact support</a>.\n","readmeFilename":"README.md"}