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.
Paste your manifest.json and instantly validate it against the W3C spec. Catch errors and warnings. Client‑side.
Fill in your PWA details to generate a valid manifest.json file. Include icons, theme color, display mode.
Paste your .htaccess rules and check for common syntax errors or misconfigurations. No server required; static analysis.
Paste JSON-LD and validate basic syntax and required properties for Article, Product, etc. Local only. Instant feedback.
Check if your related native or PWA app is installed. See the API in action and copy the code.
Validate and compare semantic version strings. Check if a version satisfies a range (e.g., ^1.2.3). Visual breakdown of major.minor.patch. Local only.
See how Trusted Types prevents unsafe HTML assignment. Test against injected scripts. Modern security practice.
Upload a 512x512 logo and get resized icons for every PWA requirement. Download a zip and the corresponding manifest.json snippet.
Validate if a version string follows SemVer 2.0.0. Also sort and compare versions. Developer tool.
Bypass CORS for testing by routing requests through a local service worker proxy. Debug APIs without server changes. Experimental.
Paste your Swagger/OpenAPI YAML and see a rendered API documentation preview with expandable endpoints. All local rendering.
Paste a GeoJSON object and validate its structure. Catch missing coordinates, wrong types, and feature errors. Local.
Derive a strong cryptographic key from a password using PBKDF2 with SHA‑256. Adjust iterations and salt. Educational and test tool.
Generate a series of semantic version tags with optional prefixes. Copy for your release script. Consistent tagging.
Test SQL injection inputs on a mock database and see the resulting query. Learn how to prevent SQLi. No real data.
Write and run simple Sinclair BASIC programs in a browser-based ZX Spectrum emulator. Load demo programs and experience 80s computing. Educational fun.
Parse XML strings into compact JSON representation. Handles attributes and text nodes intelligently. Quick and private, ideal for API response translation.
Translate YAML configuration files into JSON format instantly. Validate syntax during conversion. Perfect for DevOps and configuration management. Secure client-side operation.
Generate a dummy RSA or EC public/private key pair for educational visualization. Shows key structure and ASN.1 dump. Not for production use.
Smash bricks with a ball and paddle. Multiple rows of colored bricks, power‑ups, and score tracking. All built with HTML5 Canvas.
Pick a package name and generate a custom version or download badge as a static image or Markdown link. For readme files.
Write slides in Markdown and instantly preview a web‑based presentation. Export as HTML. Pure frontend.
Paste a GraphQL SDL schema and get auto‑generated Markdown documentation. Perfect for API docs. All local.
Paste two Markdown texts and see a side‑by‑side diff with rendered preview. Perfect for editing and collaboration.
Fold a virtual square paper step by step with crease lines and visual previews. Practice origami basics without wasting real paper. All canvas‑based.
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.
Test the Content Indexing API to add a page to the device's content feed. See how your PWA integrates with the OS.
Register a periodic background sync and see the status. Schedule content updates for your PWA. API demo.