Skip to content

Instantly share code, notes, and snippets.

@oeon
Created March 1, 2023 00:23
Show Gist options
  • Save oeon/d0e6b1582ec48c56f40647d60ae5909b to your computer and use it in GitHub Desktop.
Save oeon/d0e6b1582ec48c56f40647d60ae5909b to your computer and use it in GitHub Desktop.
test html for OPENEXTENSION demo in gist
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>App Extension Example</title>
<!-- Fulcrum extension script -->
<script>(()=>{var t=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports);var d=t((w,o)=>{var a=new URLSearchParams(location.search),u,r=(u=c(a.get("extension")))!=null?u:{};function c(e){try{return JSON.parse(e)}catch(n){return null}}var l;o.exports=window.Fulcrum={id:r.id,url:r.url,data:(l=r.data)!=null?l:{},origin:r.origin,init:()=>{var e;Fulcrum.isReady=!0,(e=Fulcrum.onReadyOnce)==null||e.call(Fulcrum)},ready:e=>{Fulcrum.onReadyOnce=()=>{Fulcrum.isReady&&!Fulcrum.onReadyCalled&&(Fulcrum.onReadyCalled=!0,e(Fulcrum))},Fulcrum.onReadyOnce()},send:(e,{close:n=!1}={})=>{var i;e=e!=null?e:{};let s={id:Fulcrum.id,url:Fulcrum.url,data:e,close:n};(i=window.webkit)!=null&&i.messageHandlers?window.webkit.messageHandlers.extensionListener.postMessage(JSON.stringify(s)):window.parent&&window.parent.postMessage({extensionMessage:s},Fulcrum.origin)},finish:e=>{Fulcrum.send(e,{close:!0})}};window.addEventListener("DOMContentLoaded",Fulcrum.init)});d();})();</script>
<!-- The app extension code -->
<script type="text/javascript">
// the ready() handler is called when the extension loads and is ready to process the data value
Fulcrum.ready(({ data }) => {
// get a reference to the button
const button = document.querySelector('button');
// assign the button text to the value from Data Events
button.textContent = `Hello ${data.test_value + 1}!`;
// setup a click handler to finish the extension and send a result back to Fulcrum
button.addEventListener('click', () => {
Fulcrum.finish({ simple_result: data.test_value + 1 });
});
});
</script>
</head>
<body>
<button>Hello</button>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment