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.
Enter a suspicious link and this tool performs a client‑side check against public threat intelligence feeds. See risk category before you click.
Enter a website URL and apply a protanopia/deuteranopia/tritanopia filter. Test full page accessibility.
Enter an image URL to extract a 5-color dominant palette. Avoids uploading files. Uses canvas to read remote image pixels. Fast and privacy-oriented.
Paste Markdown and convert all links from absolute to relative (or vice‑versa) based on a base domain. Bulk edit.
See how a PWA can extend content into the title bar area on desktop. Customize the window controls overlay.
Simulate a PWA receiving shared text, links, and images. Test the Web Share Target API without a server.
Register a periodic background sync and see the status. Schedule content updates for your PWA. API demo.
Check if the browser has captured the beforeinstallprompt event. Understand why your PWA is (or isn't) installable.
Check if your site has a service worker registered and if it can load offline. Quick PWA readiness assessment.
Enter two URLs and see if they resolve to the same canonical form after normalization. Find duplicate content issues.
Enter a URL and fetch its text/background colors to perform a bulk contrast check. See warnings for WCAG violations.
Create a Blob from text or a file and generate a temporary URL for it. Understand the Blob API. Dev demo.
Explore the contents of the Cache Storage API for your domain. See cached requests and their sizes. Debug offline apps.
Check if your page triggers the beforeinstallprompt event. Simulate the install flow. Debug PWA installability.
Upload a 512x512 logo and get resized icons for every PWA requirement. Download a zip and the corresponding manifest.json snippet.
Enter an image URL, crop it interactively, and download the result. No upload. Works with any CORS‑enabled image.
Register a periodic background sync to fetch fresh data even when the tab is closed. Understand the API and limits.
See the current state of a Service Worker for your page: installing, waiting, active. Unregister or skip waiting. Developer utility.
Paste a direct link to an image and get its 5 dominant colors with hex codes. No upload, uses canvas with CORS proxy.
Enter the URL of any image and receive a random harmonious palette extracted from it. Click to regen. For quick inspiration.
Enter the URL of any online image and extract its dominant colors or pick colors with a magnifier. No upload, cross‑origin friendly.
Convert title to URL slug with options: ignore stop words, transliterate special characters, choose separator. SEO friendly.
Enter an image URL and extract its dominant color palette. No download needed. Fast visual analysis.
Enter a full URL and get all query parameters in a clean table with decoded values. Quickly see UTM and tracking params.
Convert messy URLs into clean, keyword-rich slugs. Remove stop words, replace spaces with hyphens. Lowercase transformation. All local.
Find out the real destination of any shortened link (bit.ly, t.co, etc.) without clicking. Resolves redirects locally using public HTTP headers.
Convert titles and sentences into clean URL slugs. Handles special characters, spaces, and case. Essential for CMS users and developers creating SEO-friendly links.
Encode special characters into URL-safe format or decode percent-encoded strings back to plain text. Fast and reliable, runs locally in your browser.