URI deep link per app mobile
Componga un link che apre la sua app invece del browser: il protocollo myapp, l'host product e il percorso /item/42 diventano myapp://product/item/42, con le coppie della query codificate dopo il punto interrogativo. I caratteri non ammessi nel protocollo vengono bloccati. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Funziona nel tuo browser: gratis, senza registrazione, i file non escono dal tuo dispositivo.
Le app mobili aprono i contenuti tramite scheme URL personalizzati come myapp://product/item/42? Le stringhe assemblate a mano divergono—spazi nello scheme, ampersand non escapati, slash mancanti—e interrompono i flussi di apertura in-app su iOS e Android.
Che cos'è un deep link con protocollo personalizzato
Un deep link con protocollo personalizzato è un indirizzo che il sistema del telefono passa alla sua app installata invece di aprire il browser. Il protocollo è la parte prima dei due punti e della doppia barra, come myapp o com.example.app, e segue una grammatica rigida: inizia con una lettera e poi ammette solo lettere, cifre, segno più, punto o trattino. Seguono un host facoltativo, come product o open, un percorso facoltativo, come /item/42, e infine le coppie della query. Il generatore unisce queste parti sempre nello stesso ordine.
Gli errori che rompono il link e dove si usa
I link scritti a mano falliscono per dettagli: spazi o trattini bassi nel protocollo, una e commerciale non codificata, una barra mancante. Capita spesso che qualcuno incolli come protocollo il nome del prodotto, con spazio e punto esclamativo. Qui il protocollo viene validato prima, e ogni chiave e valore della query viene codificato come fanno i browser, così uno spazio non rompe nulla. Serve per i link personalizzati delle campagne via email, SMS e annunci, per i codici QR stampati sulle confezioni, che richiedono un testo stabile, e per le app white label, in cui ogni marchio ha il proprio protocollo.
Dove un costruttore di URI deep link ripaga l'investimento
Le pipeline di growth e CRM generano link personalizzati di apertura in-app per ogni campagna senza chiedere agli ingegneri di reimplementare il percent-encoding. Gli strumenti QR e di packaging necessitano di una stringa stabile da stampare; validare lo scheme in anticipo evita un recall di produzione quando qualcuno incolla My App! come scheme.
La validazione fallita non consuma saldo. Mantenga gli scheme in una allow-list documentata dal Suo lato, rifiuti qui i caratteri illegali e otterrà deep link riproducibili per SMS, e-mail, annunci e condivisioni in-app senza montare un accorciatore di link o uno stack di attribuzione solo per assemblare URI.
Domande frequenti
Quali caratteri di scheme sono consentiti?
RFC 3986: prima una lettera, poi solo lettere, cifre, più (+), punto (.) o trattino (-).
Com'è il link se manca l'host?
Con l'host vuoto e il percorso /promo, il link diventa myapp:///promo, con tre barre. Se host e percorso sono entrambi vuoti, si ottiene comunque un link valido come myapp://, che apre semplicemente l'app.
Come vengono gestiti spazi e simboli nella query?
Ogni chiave e ogni valore vengono codificati con le stesse regole che i browser usano per i moduli, quindi uno spazio diventa una sequenza di escape e una e commerciale non può dividere la query in coppie sbagliate.
Quante coppie della query può contenere un link?
Fino a 50. Ogni chiave deve contenere testo dopo aver tolto gli spazi ai lati, mentre i valori possono essere testo, numeri o vero e falso; tutti diventano testo prima della codifica.
Perché compare una barra davanti al percorso?
Perché un percorso non vuoto riceve sempre esattamente una barra iniziale: item/42 e /item/42 producono lo stesso link. Così il risultato è prevedibile in qualunque modo venga scritto il percorso.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/web/deep-link-scheme-build \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"scheme":"myapp"}'const res = await fetch("https://api.kit.forhosting.com/web/deep-link-scheme-build", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"scheme": "myapp"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/deep-link-scheme-build",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"scheme": "myapp"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/deep-link-scheme-build", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"scheme":"myapp"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"scheme":"myapp"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/deep-link-scheme-build", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"scheme": "myapp"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.deep_link_scheme_build",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
timeout_sec | 30 |
max_crawl_pages | 25 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
ref=email. I team di prodotto, growth e engineering necessitano che tali URI deep link siano sempre ben formate: un token di scheme legale, host e path prevedibili e coppie di query percent-encoded che sopravvivano al copia-incolla in payload push, SMS, codici QR e destinazioni pubblicitarie. Questa capacità accetta uno scheme personalizzato, host opzionale, path opzionale e un elenco opzionale di coppie chiave/valore di query, valida lo scheme rispetto alla produzione RFC 3986, normalizza il path, codifica la query e restituisce la stringa deep_link finita più campi di eco strutturati. I caratteri di scheme non validi falliscono con invalid_input invece di emettere in silenzio una URI rotta.
Cos'è un deep link con scheme personalizzato e come si assembla l'URI
Un deep link mobile con scheme personalizzato è un'URI che il sistema operativo instrada verso la Sua app installata anziché verso il browser. Lo scheme è il token prima dei due punti e della doppia barra—myapp, com.example.app o my-app+v2—e deve seguire la grammatica degli scheme URI: prima una lettera, poi solo lettere, cifre, più, punto o trattino. Spazi, underscore, due punti e slash all'interno dello scheme sono illegali e sono gli errori di copia-incolla più comuni quando un nome di prodotto viene usato come scheme senza sanificazione. Chiavi e valori di query sono percent-encoded con le stesse regole usate dai browser per componenti in stile application/x-www-form-urlencoded, così gli spazi diventano escape stile %20 e i caratteri riservati non possono spezzare la query. Dopo scheme:// arriva un host opzionale (a volte detto authority), come product, open o auth, poi un path opzionale come /item/42, quindi una stringa di query opzionale di coppie chiave uguale valore unite da ampersand. Questo costruttore concatena tali pezzi in un ordine fisso: scheme, letterale ://, host (può essere vuoto), un path che riceve sempre una singola slash iniziale se non vuoto, e una stringa di query solo quando è presente almeno un parametro. Quando l'host è vuoto e il path è /promo, il risultato appare come myapp:///promo; quando host e path sono entrambi vuoti ottiene comunque un guscio legale scheme:// utile come intent bare di apertura app. La risposta echeggia scheme, host, path, query_params, query_string, deep_link e has_query così i client possono registrare parti strutturate senza riparsare l'URI. Poiché l'algoritmo è puro e deterministico, gli stessi input producono sempre lo stesso deep_link byte per byte sul percorso gratuito del browser e sul percorso API a pagamento.
Contratto di input, regole di validazione e comportamento degli errori
Sono accettate al massimo cinquanta coppie. Invii in POST un corpo JSON con scheme come unico campo strettamente obbligatorio: una stringa non vuota dopo il trim che corrisponde al pattern lettera poi lettere, cifre, più, punto o trattino. Sono accettati gli alias url_scheme, custom_scheme e protocol. host è opzionale e di default è la stringa vuota; se impostato non deve contenere spazi, slash, punto interrogativo o cancelletto. path è opzionale; se non vuoto non deve contenere spazi, punto interrogativo o cancelletto, e viene inserita una slash iniziale se Lei la omette, così item/42 diventa /item/42. query_params è un array opzionale di oggetti, ciascuno con key obbligatoria e value opzionale (default stringa vuota); gli alias query, params e search_params funzionano allo stesso modo. Ogni key deve essere non vuota dopo il trim; i valori possono essere stringhe, numeri o booleani e vengono convertiti in stringa prima della codifica. scheme assente o vuoto, scheme con caratteri non validi, caratteri illegali in host o path, query_params non array o key vuote falliscono con invalid_input e un messaggio chiaro che nomina il problema—tali fallimenti non vengono fatturati. In caso di successo riceve scheme, host e path normalizzati; l'elenco query_params normalizzato; query_string senza punto interrogativo iniziale; deep_link come URI completa; e has_query come booleano. Esempio: scheme myapp, host product, path /item/42 e query_params ref uguale a email più utm_source uguale a newsletter produce myapp://product/item/42? ref=email&utm_source=newsletter. Abbini deep_link ai domini associati o agli intent filter della Sua app sul client; questo endpoint costruisce solo la stringa URI e non registra gli scheme con il SO né verifica che l'app sia installata.
Dove un costruttore di URI deep link ripaga l'investimento
I backend di notifiche push compongono scheme, host di schermata e id entità in un unico campo deep_link che il client mobile può analizzare al cold start. Le app white-label multi-tenant mappano ogni brand al proprio token di scheme e condividono comunque un costruttore per le convenzioni di path e query. Poiché l'implementazione è parse puro tier A, ogni chiamata riuscita costa il prezzo base pubblicato $0.002 senza token di modello e senza rete in uscita.
Casi di integrazione
Link di campagna e CRM per aprire nell'app
Costruisca deep link personalizzati myapp://host/path?utm… per e-mail, SMS e annunci a partire da uno scheme validato e una mappa di query.
Target nel payload delle notifiche push
Componga scheme, host di schermata e path di entità in un'unica stringa deep_link che il client mobile apre al tap sulla notifica.
QR, packaging e golden di QA
Generi URI deep link stampabili e fissi valori deep_link stabili nei test così gli scheme illegali non vadano mai in produzione.
Domande tecniche
Come si costruisce una URI deep link per app mobile?
Invii uno scheme personalizzato (obbligatorio), host e path opzionali e query_params opzionali come coppie {key, value}. L'API restituisce deep_link come scheme://host/path?query con parametri percent-encoded.
Cosa succede se lo scheme ha caratteri non validi?
L'operazione fallisce con invalid_input e un messaggio che nomina lo scheme non valido. Nessun deep_link viene restituito e la chiamata non viene fatturata.
Host o path sono obbligatori?
No. Entrambi di default sono vuoti. Può emettere scheme:// da solo, scheme://host, scheme:///path o la forma completa scheme://host/path?query.
Quanto costa il costruttore di URI deep link?
Lo strumento nel browser è gratuito. Le richieste API usano il saldo KIT prepagato a $0.002 per chiamata riuscita; l'input non valido non viene fatturato.