Buscar..


Observaciones

Útil documentación de Apple con ejemplos y aclaraciones.

Abrir una aplicación basada en su esquema de URL

Para abrir una aplicación con el esquema de URL definido todolist:// :

C objetivo

NSURL *myURL = [NSURL URLWithString:@"todolist://there/is/something/to/do"];
[[UIApplication sharedApplication] openURL:myURL];

Rápido

let stringURL = "todolist://there/is/something/to/do"
if let url = NSURL(string: stringURL) {
    UIApplication.shared().openURL(url)
}

HTML

<a href="todolist://there/is/something/to/do">New SMS Message</a>

Nota: es útil verificar si se puede abrir el enlace para mostrar un mensaje apropiado para el usuario. Esto se puede hacer usando el método canOpenURL:

Agregando un esquema de URL a tu propia aplicación

Digamos que está trabajando en una aplicación llamada MyTasks , y desea permitir que las URL entrantes creen una nueva tarea con un título y un cuerpo. La URL que estás diseñando puede verse algo como esto:

mytasks://create?title=hello&body=world

(Por supuesto, los parámetros de text y body se utilizan para completar nuestra tarea que estamos creando.)

Aquí están los grandes pasos para agregar este esquema de URL a su proyecto:

  1. Registre un esquema de URL en el archivo Info.plist su aplicación, para que el sistema sepa cuándo enrutar una URL a su aplicación.
  2. Agregue una función a su UIApplicationDelegate que acepte y maneje las URL entrantes.
  3. Realice cualquier tarea que deba ocurrir cuando se abra esa URL.

Paso uno: Registrar un esquema de URL en Info.plist:

Primero, debemos agregar una entrada de "Tipos de URL" a nuestro archivo Info.plist. Haga clic en el botón (+) aquí: añadiendo una nueva fila a Info.plist

... luego ingrese un identificador único para su aplicación, así como el esquema de URL que desea usar. ¡Se específico! No quieres que el esquema de URL entre en conflicto con la implementación de otra aplicación. ¡Es mejor ser demasiado largo aquí que demasiado corto! Completando la entrada de tipos de URL en Info.plist

Paso dos: Manejar la URL en UIApplicationDelegate

Necesitamos implementar application:openURL:options: en nuestro UIApplicationDelegate . ¡Inspeccionaremos la URL entrante y veremos si hay alguna acción que podamos tomar!

Una implementación sería esta:

func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
    if url.scheme == "mytasks" && url.host == "create" {
        let title = // get the title out of the URL's query using a method of your choice
        let body = // get the title out of the URL's query using a method of your choice
        self.rootViewController.createTaskWithTitle(title, body: body)
        return true
    }

    return false
}

Paso tres: realizar una tarea en función de la URL.

Cuando un usuario abre su aplicación a través de una URL, probablemente espera que suceda algo . Tal vez es navegar por una parte del contenido, tal vez es crear un nuevo elemento. En este ejemplo, vamos a crear una nueva tarea en la aplicación.

En el código anterior, podemos ver una llamada a self.rootViewController.createTaskWithTitle(:body:) - por lo tanto, asumiendo que su AppDelegate tiene un puntero a su controlador de vista raíz que implementa la función correctamente, ¡está todo listo!

La configuración de enlaces profundos para su aplicación es fácil. Solo necesita una url pequeña con la que desea abrir su aplicación.

Sigue los pasos para configurar la vinculación profunda para tu aplicación.

  1. Permite crear un proyecto y llamarlo DeepLinkPOC.

  2. Ahora selecciona el objetivo de tu proyecto.

  3. Después de seleccionar el objetivo, seleccione la pestaña 'información'.

  4. Desplácese hasta la parte inferior hasta que vea una opción de Tipos de URL

  5. Haga clic en la opción '+'.

  6. Verá que los esquemas de URL agregan una cadena mediante la cual desea abrir su aplicación. Permite agregar " DeepLinking " en los esquemas de URL.

Entonces, para abrir su aplicación, puede iniciarla escribiendo "DeepLinking: //" en su safari. Tu cadena de enlace profundo tiene el siguiente formato.

[scheme]://[host]/[path]  --> DeepLinking://path/Page1

donde, Esquema: Host "DeepLinking": ruta "path": "Page1"

Nota : incluso si no agrega el host y la ruta, la aplicación se iniciará, así que no se preocupe. Pero puede agregar el host y la ruta para redirigir adicionalmente a una página en particular después del inicio de la aplicación.

  1. Ahora agregue el siguiente método a su appdelegate.

Rápido:

 func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool 

C objetivo:

-(BOOL)application:(UIApplication *)application
          openURL:(NSURL *)url
          sourceApplication:(NSString *)sourceApplication
          annotation:(id)annotation

Se llama al método anterior siempre que su aplicación se inicie utilizando una cadena de enlace profundo que estableció para su aplicación.

  1. Ahora es el momento de instalar su aplicación, pero espere a que salte directamente al botón de ejecución. Hagamos un pequeño cambio en el método de inicio de la aplicación del esquema.
  • Seleccione y edite su esquema como

introduzca la descripción de la imagen aquí

  • Cambia su tipo de lanzamiento y cierra. introduzca la descripción de la imagen aquí
  1. Ahora haga clic en el botón Ejecutar (si lo desea, puede agregar un punto de interrupción a sus métodos didFinishLaunchingWithOptions y openURL para observar los valores)

  2. Verá un mensaje "Esperando que se inicie DeepLinkPOC (o el nombre de su aplicación)".

  3. Abra safari y escriba " DeepLinking: // " en la barra de búsqueda. Esto le mostrará "abra esta página en DeepLinkPOC" haga clic en abrir para iniciar su aplicación.

Espero que tengas que saber cómo configurar enlaces profundos para tu aplicación :)



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow