Pregunta

necesito para manejar las direcciones URL HTTP que comienzan con un cierto dominio con mi aplicación, porque apunta a una fuente RESTO. El servicio web sin embargo no está bajo mi control, así que no puedo introducir fácilmente un esquema de URL personalizada para abrir los enlaces con mi aplicación.

¿Hay una manera de interceptar y manejar este tipo de URL en una aplicación Cocoa?

Ejemplo: http://static.domain.name/some/random/path

Mi aplicación debe manejar todos los enlaces que apuntan a http://static.domain.name

Me temo que la respuesta será no, pero bueno, todo es posible de alguna manera:)

.

Actualizar


Este es el código de extensión de Safari que solía hacer el trabajo (contenido en <> reemplazado con sus cosas)

var allLinks = document.links;
for (var i=0; i<allLinks.length; i++) {
    var link = allLinks[i];
    if (/.*<match>.*/.test(link.href)) {
        var rewrite = link.href.replace(/<match>/, "<customscheme>://");
        link.href = rewrite;
        console.log("Rewrote: " + rewrite);
    }
}
¿Fue útil?

Solución

Sólo codificar toda la url bajo su propio esquema, por ejemplo, myscheme://http%3A//static.domain.name/some/random/path

Cuando sus manijas de aplicación de la URL, simplemente cortan fuera de la primera parte y unescape que:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    NSString * urlString = [url description];
    // Remove your scheme
    urlString = [urlString stringByReplacingOccurrencesOfString:@"myscheme://" withString: @""];
    // Unescape
    urlString = [urlString stringByReplacingPercentEscapesUsingEncoding: NSASCIIStringEncoding];
    // Do something with urlString
    return YES;
}

Pero no. No se puede asignar a http:// mango

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top