Launch Handler API Demo - Online Control App Launch Behavior
Configure how your PWA launches: focus existing or create new. Test with the launch_handler manifest field.
UD5 Toolkit
Generate OS-level URL scheme registrations for Windows, macOS & Linux. Create custom protocol handlers like myapp:// for deep linking into your desktop application.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\myapp]
@="URL:MyApp Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\myapp\DefaultIcon]
@="C:\\Program Files\\MyApp\\app.exe,1"
[HKEY_CLASSES_ROOT\myapp\shell]
[HKEY_CLASSES_ROOT\myapp\shell\open]
[HKEY_CLASSES_ROOT\myapp\shell\open\command]
@="\"C:\\Program Files\\MyApp\\app.exe\" \"%1\""
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.example.myapp</string>
<key>CFBundleURLSchemes</key>
<array>
<string>myapp</string>
</array>
</dict>
</array>
[Desktop Entry]
Type=Application
Name=MyApp
Exec=/usr/bin/myapp %u
MimeType=x-scheme-handler/myapp;
NoDisplay=true
Terminal=false
// Register web+ protocol handler (browser-based)
navigator.registerProtocolHandler(
'web+myapp',
'https://example.com/handler?url=%s',
'MyApp Web Handler'
);
// Detect if protocol is likely supported
function detectProtocol(scheme, fallbackUrl, timeout = 2000) {
return new Promise((resolve) => {
const start = Date.now();
const iframe = document.createElement('iframe');
iframe.style.display = 'none';
document.body.appendChild(iframe);
const timer = setTimeout(() => {
document.body.removeChild(iframe);
resolve(false);
}, timeout);
const blurHandler = () => {
clearTimeout(timer);
document.body.removeChild(iframe);
window.removeEventListener('blur', blurHandler);
resolve(true);
};
window.addEventListener('blur', blurHandler);
try { iframe.src = scheme + '://test'; } catch(e) {
clearTimeout(timer);
document.body.removeChild(iframe);
resolve(false);
}
});
}
Click the button below to test if the protocol handler is registered on this machine. If registered, the associated application should launch.
myapp://) allows websites or other applications to launch your desktop application with specific parameters. When a user clicks a link with your custom scheme, the operating system looks up which application is registered to handle it and launches that app, passing the full URL. This enables deep linking — for example, slack://open opens Slack, spotify://play opens Spotify. It's widely used for OAuth callbacks, application-to-web communication, and seamless user experiences.
HKEY_CLASSES_ROOT\[scheme]. You need to create registry keys that specify the URL protocol, the default icon, and the shell open command that launches your executable with the URL passed as %1. The easiest way is to create a .reg file (which this tool generates) and double-click it to merge into the registry. Administrator privileges may be required. Alternatively, your application installer can create these registry entries programmatically.
myapp://. This works across all browsers and applications. Web-based registration using navigator.registerProtocolHandler() only works within browsers and is restricted to schemes prefixed with web+ (e.g., web+myapp://). The web API lets a website register itself as the handler, meaning when a user clicks a web+myapp:// link, the browser navigates to your handler URL instead of launching a desktop app. Use OS-level registration for desktop apps and web API for web-to-web communication.
myapp://test) directly into a browser's address bar and press Enter. If the handler is registered, your application should launch. You can also use the test button in this tool, which attempts to open the protocol link. For programmatic detection, you can use the JavaScript snippet in the "Web API" tab — it uses a combination of iframe loading and blur event detection to infer whether a protocol handler responded. Note that browsers increasingly block these detection methods for privacy reasons, so false negatives are possible.
a-z, A-Z) and can be followed by any combination of letters, digits (0-9), plus signs (+), hyphens (-), and dots (.). Examples of valid schemes: myapp, my-app, com.example.app, app+v2. Avoid using schemes that conflict with well-known ones like http, https, ftp, mailto, tel, sms, etc. Also note that schemes are case-insensitive per the spec, though lowercase is the convention.
Info.plist (similar to macOS) using CFBundleURLSchemes. On Android, you define intent filters in your AndroidManifest.xml with <data android:scheme="myapp"/>. Starting with Android 12 and iOS 14+, both platforms encourage using Universal Links (iOS) and App Links (Android) over custom schemes, as they provide better security (domain verification) and fallback behavior when the app isn't installed.
Configure how your PWA launches: focus existing or create new. Test with the launch_handler manifest field.
Fill in your PWA details to generate a valid manifest.json file. Include icons, theme color, display mode.
Build <link> tags for preload, prefetch, preconnect, and dns‑prefetch. Improve page load speed with correct priorities. Copy the optimized HTML.
See exact dimensions of your current browser inner/outer window, screen resolution, and pixel ratio. Developer debug.
List cached responses for your domain. View headers, content, and delete individual entries. Understand your PWA's cache.
Calculate large Fibonacci numbers in a Web Worker. See the UI remain responsive. Copy the pattern for your app.
Apply a Proxy to an object and see the get/set traps log fired in real time. Understand metaprogramming. Local.
See the View Transitions API in action. Cross‑fade and morph between two states. Copy the JavaScript starter code.
Check if your site has a visible and functional skip navigation link. Key for keyboard‑only users.
Answer simple questions (braid/mono, hook/swivel) to see the recommended fishing knot with step‑by‑step animation.
Set start and end times for a video and trim it without re-encoding. Download the clip. Pure browser.
Adjust your lye amount based on lye purity (KOH/NaOH) and desired superfat percentage. Provides safety check for handmade soap recipes.
Pick a random icebreaker question or activity for remote meetings. Never start a meeting awkwardly again.
Create a custom soap recipe by selecting oils and their percentages. Get precise lye and water amounts. Safety warnings included.
Write JavaScript using element.animate() and see the result in a live preview. Compare with CSS keyframes. Debugger included.
Paste GeoJSON and instantly see it drawn on a draggable map. Supports points, lines, and polygons. Local fetch of tiles.
See how many tabs you have open and estimate memory usage based on navigator object. Fun productivity check.
Create promises that resolve or reject after a delay. See state changes and chain .then/.catch. Debug async code.
Run a CPU‑heavy calculation (e.g., prime numbers) in a Web Worker and see the UI stay responsive. Code snippet provided.
When a yarn is discontinued, find equivalent alternatives by matching weight and gauge. Local reference.
Enter income, pay frequency, and expected deductions to estimate your tax refund or balance due. Simplified model.
Select a runtime (Node.js, Python, Go) and generate a basic, optimized Dockerfile with multi‑stage build. Copy and refine.
See your current page load broken down into DNS, TLS, request, and DOM phases. Understand where time is spent.
See your current page load broken down into DNS, TLS, request, and DOM phases. Understand where time is spent.
Configure a modern HTML5 boilerplate with your choice of meta tags, social media cards, favicon links, and CSS/JS includes. Download or copy the code.
Render the classic Stanford Bunny with a basic WebGPU pipeline. Rotate and zoom. Check if your browser supports WebGPU.
Generate a complete <head> section with meta charset, viewport, SEO, favicon, and social tags. Customize and copy.
Write text with inline footnote markers and this tool will move the notes to the bottom and add proper Markdown links. Saves time.
Type raw HTML and see the escaped version, then see how it renders when unescaped. Understand encoding better.
Limit browser gestures on an element: pan‑x, pinch‑zoom, manipulation. Draw on a canvas to test. Mobile dev helper.