1

Je travaille sur un projet SinglePageApplication (JS + HTML). La webapp est épinglé à l'écran d'accueil sur un iPhone. Cette application appelle une application native appelée « pic2shop » pour scanner un code-barres avec un système personnalisé enregistré comme celui-ci:Comment créer un lien vers une application Web "épinglé à l'écran d'accueil" sur les iO?

window.uri=pic2shop://scan?callback=localhost:20001%3Feancode%3DEAN 

Quand « pic2shop » est fait, il appelle le uri supllied par le paramètre de rappel. C'est bien!

En appelant l'URI fourni, une nouvelle instance de safari s'ouvre et ouvre l'uri. Ce que j'aimerais voir, c'est que l'instance déjà en cours de ma webapp est réutilisée. Des idées? Est-ce possible?

Répondre

0

Oui, vous pouvez utiliser "Safari View Controller". Et voici un excellent exemple comment:

https://library.launchkit.io/how-ios-9-s-safari-view-controller-could-completely-change-your-app-s-onboarding-experience-2bcf2305137f#.r1ac0b5c2

EDIT

Si vous voulez que votre application pour ouvrir, avec un contex WebView, vous cand envoyez params sur le sheme:

//myScheme://params=1&param2=openWebView 

Vous recevrez un appel à:

-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)ur 

Et puis vérifiez les param et webView ouverte si nécessaire:

NSString *query = [url query]; 
NSArray *queryComponents = [query componentsSeparatedByString:@"&"]; 
param1=value 
NSArray *firstParam = [[queryComponents objectAtIndex:0] componentsSeparatedByString:@"="]; 
[firstParam objectAtIndex:0] 
[firstParam objectAtIndex:1] 
+0

Désolé, je ne suis pas très clair dans ma question. Une application tierce appelle une URI et je veux que cette URI ouvre ma webapp épinglée. Safari Web Controller aiderait-il dans ce cas? – Kai

+0

Donc l'utilisateur est au contexte d'une 3ème application? Vous voulez donc que votre application s'ouvre avec webView? Donc, vous cherchez des paramètres de passe sur un régime? – MCMatan

+0

Le flux est comme suit: 1. Un utilisateur est sur ma webapp (HTML pur + JS épinglé à l'écran d'accueil) et appuie sur un bouton. 2. L'événement click lance une application native en appelant le schéma personnalisé. 3. L'application native doit rappeler ma webapp. Il le fait en ouvrant un URI régulier (http: //..../myCallback) qui à son tour ouvre Safari mais je veux qu'il ouvre mon instance en cours d'exécution de 1. – Kai