יום שלישי, 14 באוקטובר 2014

פתיחת אפליקציית waze מתוך אפליקציה קיימת

בפוסט זה נדון בפתיחת אפליקציית waze בפרט ובאפליקצייה אחרת בכלל מתוך האפליקציה שלנו.

קצת רקע והקדמה:

ניתן לבקש מהאפליקציה לפתוח אפליקציה אחרת הזמינה לפתיחה חיצונית.
על מנת להגדיר אפליקציה לפתיחה חיצונית, יש להגדיר URL Scheme (ב info.plist תחת URL Types, תחת המערך URL Schemes)
המחרוזת שאותה תגדירו, היא זו שתזהה את האפליקציה לפתיחה חיצונית
על כן נסו שמחרוזת הסכמה תהיה ייחודית.

נניח והגדרתם את הסכמה myApp אז ניתן לפתוח את האפליקציה באמצעות הנתיב

myApp://

וכן ניתן להעביר פרמטרים בצורה של GET למשל:
myApp://?key=value&number=5

את הקריאה הזו תוכלו לקבל במימוש המתודות הבאות ב AppDelegate

application:handleOpenURL:
או ב 
application:openURL:sourceApplication:annotation:
בארגומנט url.

אגב, שימו לב, למי מכם שהשתמש ב SDK של פייסבוק, שזה בדיוק מה שעשיתם.
אפליקציית הפייסבוק או הספארי אחרי התחברות של המשתמש פותחת את האפליקציה שלכם בעזרת הסכמה שהגדרתם
שהיא fb + facebookAppID , ואת התשובה מפייסבוק העברתם לSDK של פייסוק באמצעות קריאה ל FBAppCall

אל תאמינו לי, תעשו דיבאג ותראו בעצמכם.

וניגש לעניינים:

ישנן מספר אפליקציות שמאפשרות פתיחה חיצונית, ואף מפרסמות את העניין מכיון שהן מאמינות שיש להן ערך מוסף עבור אפליקציות אחרות.
למשל waze, מי עוד? אפליקציית הטלפון של אפל למשל.
ישנו אתר שמרכז סכמות רבות http://handleopenurl.com/

אם כן, בהינתן נקודה בה יש לנו CLLocation נתון, ונרצה לפתוח את ה waze על מנת לנווט לאותה קוארדינטה.
עלינו לפתוח url כדוגמת:
waze://?ll=37.331689,-122.030731&navigate=yes

בואו נראה מימוש שבו נבדוק אם waze מותקן, אם כן, נפתח 
אחרת, אתם תחליטו מה בא לכם לעשות (למשל להציג הודעת שגיאה למשתמש או מראש לא להציג את הכפתור)








Swift




אין תגובות:

הוסף רשומת תגובה