shithub: puzzles

Download patch

ref: 255744676c0c4c8fa391d7a03bdd3142d6db0ad2
parent: b66a38bbdc4405cce7050b8e8bbcae8d69c3dc2c
author: Ben Harris <bjh21@bjh21.me.uk>
date: Wed Mar 22 18:54:08 EDT 2023

KaiOS: be more careful detecting the presence of KaiAds

Now that we catch JavaScript errors and report them to the user, I could
tell that the way we were detecting the presence of getKaiAd() didn't
work because it caused an alert every time a build without KaiAds was
started.  Detecting the presence of a global variable is slightly
tricky, but explicitly looking for it on "window" works and isn't very
ugly.

--- a/kaios/kaiads-glue.js
+++ b/kaios/kaiads-glue.js
@@ -11,7 +11,7 @@
 (function() {
     // To run, we need to be on KaiOS with the KaiAds SDK and the
     // Open Web Apps API.
-    if (getKaiAd === undefined || navigator.mozApps === undefined ||
+    if (window.getKaiAd === undefined || navigator.mozApps === undefined ||
         navigator.userAgent.toLowerCase().indexOf('kaios') == -1) return;
     // If those prerequisites are satisfied, install the button.
     var advertbutton = document.createElement("button");