diff --git a/.changeset/lucky-eyes-sing.md b/.changeset/lucky-eyes-sing.md new file mode 100644 index 0000000000..c194887b3d --- /dev/null +++ b/.changeset/lucky-eyes-sing.md @@ -0,0 +1,5 @@ +--- +"@lynx-js/web-explorer": patch +--- + +fix: allow lynxjs.org to access native modules diff --git a/packages/web-platform/web-explorer/index.ts b/packages/web-platform/web-explorer/index.ts index 875cbf2a38..033e15eb82 100644 --- a/packages/web-platform/web-explorer/index.ts +++ b/packages/web-platform/web-explorer/index.ts @@ -17,10 +17,6 @@ backButton.addEventListener('click', () => { setLynxViewUrl(homepage); }); -const theme = window.matchMedia('(prefers-color-scheme: dark)').matches - ? 'Dark' - : 'Light'; - const qrScanner = new QrScanner(video, (result) => { console.log('qr', result); lynxView.style.visibility = 'visible'; @@ -50,16 +46,6 @@ const nativeModulesMap = { ), }; -lynxView.nativeModulesMap = nativeModulesMap; -lynxView.onNativeModulesCall = (nm, data) => { - if (nm === 'openScan') { - lynxView.style.visibility = 'hidden'; - qrScanner.start(); - } else if (nm === 'openSchema') { - setLynxViewUrl(data); - } -}; -lynxView.globalProps = { theme }; setLynxViewUrl(homepage); window.addEventListener('message', (ev) => { if (ev.data && ev.data.method === 'setLynxViewUrl' && ev.data.url) { @@ -76,6 +62,19 @@ window.addEventListener('message', (ev) => { }); function setLynxViewUrl(url: string) { + const theme = window.matchMedia('(prefers-color-scheme: dark)').matches + ? 'Dark' + : 'Light'; + lynxView.nativeModulesMap = nativeModulesMap; + lynxView.onNativeModulesCall = (nm, data) => { + if (nm === 'openScan') { + lynxView.style.visibility = 'hidden'; + qrScanner.start(); + } else if (nm === 'openSchema') { + setLynxViewUrl(data); + } + }; + lynxView.globalProps = { theme }; if (url === homepage) { nav.style.display = 'none'; lynxView.url = url;