ในอุปกรณ์ที่ใช้ iOS 9 ขึ้นไป คุณสามารถใช้ Universal Link จะเปิดตัว Google Maps เมื่อมี URL ของ Google Maps
คุณสามารถใช้รูปแบบ URL ของ Google Maps เพื่อเปิดตัว แอป Google Maps สำหรับ iOS และทำการค้นหา ขอเส้นทาง คำขอ และแสดงมุมมองแผนที่ เมื่อคุณเปิด Google Maps แพ็กเกจของคุณ ส่งโดยอัตโนมัติเป็นส่วนหนึ่งของคำขอ
คุณไม่จำเป็นต้องใช้คีย์ Google API เพื่อใช้ชุดรูปแบบ URL ของ Google Maps
Universal Link และ Google Maps
Google Maps สำหรับ iOS รองรับ สากล ลิงก์ในอุปกรณ์ที่ใช้ iOS 9 ขึ้นไป
หาก URL ของคุณตรงกับนิพจน์ทั่วไปต่อไปนี้ และอุปกรณ์กำลังทำงาน หากใช้ iOS 9 ขึ้นไป คุณอาจลองใช้เมธอด openURL: โดยตรง
(http(s?)://)?
((maps\.google\.{TLD}/)|
((www\.)?google\.{TLD}/maps/)|
(goo.gl/maps/))
.*
ตัวอย่างเช่น
Swift
UIApplication.shared.openURL(URL(string:"https://www.google.com/maps/@42.585444,13.007813,6z")!)
Objective-C
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"https://www.google.com/maps/@42.585444,13.007813,6z"]];
ภาพรวม
ชุดรูปแบบ URL ช่วยให้คุณเปิดแอปพลิเคชัน iOS ที่มาพร้อมเครื่องจากแอป iOS อื่นได้ หรือเว็บแอปพลิเคชัน คุณสามารถตั้งค่าตัวเลือกใน URL ที่จะส่งไปยัง แอปพลิเคชันที่เปิดใช้งาน แอป Google Maps สำหรับ iOS สนับสนุน URL ต่อไปนี้ สคีม:
comgooglemaps://
และcomgooglemaps-x-callback://
- รูปแบบเหล่านี้ ทำให้คุณสามารถเปิดตัวแอป Google แผนที่สำหรับ iOS และดำเนินการอย่างใดอย่างหนึ่ง การดำเนินการ:- แสดงแผนที่ในตำแหน่งและระดับการซูมที่ระบุ
- ค้นหาสถานที่หรือสถานที่ แล้วแสดงบนแผนที่
- ขอเส้นทางจากสถานที่หนึ่งไปยังอีกสถานที่หนึ่ง สามารถส่งคืนเส้นทางได้ สำหรับ 4 รูปแบบการเดินทาง ได้แก่ ขับรถ เดิน ขี่จักรยาน และสาธารณะ ขนส่งสาธารณะ
- เพิ่มการนำทางลงในแอป
- สำหรับ iOS 8 ให้เรียกกลับเมื่อแอปเสร็จสมบูรณ์ โดยใช้
comgooglemaps-x-callback://
Callback มักใช้เพื่อ นำผู้ใช้กลับไปยังแอปที่เคยเปิด Google Maps สำหรับ iOS โปรดทราบว่า บน iOS 9 ระบบจะแจ้งเตือน "กลับไปที่" โดยอัตโนมัติ ลิงก์ที่มุมซ้ายของ แถบสถานะ
comgooglemapsurl://
- รูปแบบนี้ทำให้คุณสามารถเปิดแอป Google Maps ได้ สำหรับ iOS โดยใช้ URL ที่ได้มาจากเว็บไซต์ Google Maps ในเดสก์ท็อป ซึ่งหมายความว่า คุณสามารถให้ผู้ใช้ได้รับประสบการณ์ บนอุปกรณ์เคลื่อนที่แบบเนทีฟแทน กำลังโหลดเว็บไซต์ Google Maps- URL เดิมอาจเป็นของ
maps.google.com
หรือสำหรับgoogle.com/maps
ก็ได้ หรือใช้โดเมนประเทศระดับบนสุดที่ถูกต้องแทนcom
นอกจากนี้คุณยังส่งต่อ URL เปลี่ยนเส้นทางไปยังgoo.gl/maps
ได้ด้วย - คุณสามารถโทรกลับได้โดยใช้
x-source
และx-success
ที่มีรูปแบบ URLcomgooglemapsurl://
- URL เดิมอาจเป็นของ
การเปิดตัวแอป Google Maps สำหรับ iOS และการทำงานที่เจาะจง
เมื่อต้องการเปิดใช้งานแอป Google Maps สำหรับ iOS และเลือกดำเนินการอย่างใดอย่างหนึ่ง ฟังก์ชันที่รองรับ ให้ใช้รูปแบบ URL ในรูปแบบต่อไปนี้
comgooglemaps://?parameters
หรือ
comgooglemaps-x-callback://?parameters
เราจะอธิบายพารามิเตอร์โดยละเอียดภายหลังในเอกสารนี้
กำลังตรวจสอบความพร้อมให้บริการของแอป Google Maps บนอุปกรณ์
ก่อนที่จะแสดง URL รายการใดรายการหนึ่งเหล่านี้แก่ผู้ใช้ในแอป คุณควรก่อน ยืนยันว่าได้ติดตั้งแอปพลิเคชันแล้ว แอปของคุณสามารถตรวจสอบได้ว่า URL โดยใช้โค้ดต่อไปนี้
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps://"]];
ตัวอย่างเช่น หากต้องการแสดงแผนที่ของเซ็นทรัลพาร์กในนิวยอร์ก คุณสามารถใช้ รหัสต่อไปนี้:
Swift
if (UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)) {
UIApplication.shared.openURL(URL(string:
"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic")!)
} else {
print("Can't use comgooglemaps://");
}
Objective-C
if ([[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps://"]]) {
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic"]];
} else {
NSLog(@"Can't use comgooglemaps://");
}
กำลังแสดงแผนที่
ใช้รูปแบบ URL เพื่อแสดงแผนที่ในระดับการซูมและตำแหน่งที่ระบุ คุณยังสามารถวางซ้อนมุมมองอื่นๆ บนแผนที่ของคุณหรือแสดงภาพ Street View ได้
พารามิเตอร์
พารามิเตอร์ต่อไปนี้ทั้งหมดเป็นตัวเลือก หากไม่ได้ตั้งค่าพารามิเตอร์ไว้ ระบบจะ ชุดรูปแบบ URL จะเปิดแอป Google Maps สำหรับ iOS
center
: นี่คือจุดศูนย์กลางของวิวพอร์ตแผนที่ จัดรูปแบบเป็นคอมมาแล้ว สตริงที่คั่นด้วยlatitude,longitude
mapmode
: ตั้งค่าประเภทแผนที่ที่แสดง สามารถตั้งค่าเป็น:standard
หรือstreetview
หากไม่ได้ระบุ การตั้งค่าปัจจุบันของแอปพลิเคชันจะเป็นviews
: เปิด/ปิดมุมมองที่ต้องการ ตั้งค่าเป็นsatellite
ได้traffic
หรือtransit
คุณสามารถกำหนดค่าได้หลายค่าโดยใช้ เครื่องหมายคอมมา หากพารามิเตอร์ถูกระบุโดยไม่มีค่า ระบบจะ ล้างมุมมองทั้งหมดzoom
: ระบุระดับการซูมของแผนที่
ตัวอย่าง URL นี้จะแสดงแผนที่ซึ่งมีศูนย์กลางอยู่ที่นิวยอร์กเมื่อซูม 14 โดยมี มุมมองการจราจรบน:
comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic
ตัวอย่างเพิ่มเติมมีดังนี้
comgooglemaps://?center=37.788463,-122.392545&zoom=12
comgooglemaps://?center=46.414382,10.013988&mapmode=streetview
ค้นหา
ใช้รูปแบบนี้เพื่อแสดงคำค้นหาในตำแหน่งวิวพอร์ตที่ระบุ
พารามิเตอร์
นอกจากพารามิเตอร์ที่ใช้เพื่อแสดงแผนที่แล้ว Search ยังรองรับq
พารามิเตอร์
q
: สตริงการค้นหา
URL ตัวอย่างนี้สำหรับใช้ค้นหา "พิซซ่า" รอบตำแหน่งที่ระบุ
comgooglemaps://?q=Pizza¢er=37.759748,-122.427135
ตัวอย่างเพิ่มเติมมีดังนี้
comgooglemaps://?q=Steamers+Lane+Santa+Cruz,+CA¢er=37.782652,-122.410126&views=satellite,traffic&zoom=15
comgooglemaps://?q=Google+Japan,+Minato,+Tokyo,+Japan¢er=35.660888,139.73073&zoom=15&views=transit
กำลังแสดงเส้นทาง
ใช้รูปแบบนี้เพื่อส่งคำขอและแสดงเส้นทางระหว่างสถานที่ 2 แห่ง หรือจะระบุรูปแบบการเดินทางก็ได้
พารามิเตอร์
saddr
: ตั้งค่าจุดเริ่มต้นสำหรับการค้นหาเส้นทาง ประเภท ละติจูด ลองจิจูด หรือที่อยู่ที่มีการจัดรูปแบบการค้นหา หากเป็นคำค้นหา ที่แสดงผลลัพธ์มากกว่า 1 รายการ ผลลัพธ์แรกจะเป็น ไว้ หากปล่อยค่าว่างไว้ ระบบจะแสดงตำแหน่งปัจจุบันของผู้ใช้ จะถูกนำมาใช้daddr
: ตั้งค่าจุดหมายสำหรับการค้นหาเส้นทาง มี รูปแบบและลักษณะการทำงานเดียวกันกับsaddr
directionsmode
: วิธีการเดินทาง ตั้งค่าเป็นdriving
transit
,bicycling
หรือwalking
URL ตัวอย่างแสดงเส้นทางขนส่งสาธารณะระหว่าง Google นิวยอร์กซิตี และสนามบิน JFK
comgooglemaps://?saddr=Google+Inc,+8th+Avenue,+New+York,+NY&daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York&directionsmode=transit
ตัวอย่างเพิ่มเติมมีดังนี้
comgooglemaps://?saddr=Google,+1600+Amphitheatre+Parkway,+Mountain+View,+CA+94043&daddr=Google+Inc,+345+Spear+Street,+San+Francisco,+CA¢er=37.422185,-122.083898&zoom=10
comgooglemaps://?saddr=2025+Garcia+Ave,+Mountain+View,+CA,+USA&daddr=Google,+1600+Amphitheatre+Parkway,+Mountain+View,+CA,+United+States¢er=37.423725,-122.0877&directionsmode=walking&zoom=17
การระบุ URL ติดต่อกลับ
หากต้องการระบุ URL เรียกกลับ คุณต้องใช้พารามิเตอร์
รูปแบบ URL comgooglemaps-x-callback://
รูปแบบนี้เป็นไปตาม
ข้อกำหนดเกี่ยวกับ x-callback-url เมื่อคุณเรียกแอป Google Maps สำหรับ iOS
ด้วยรูปแบบนี้ แอปจะแสดงปุ่มที่ด้านบนของ
หน้าจอ การแตะปุ่มนี้จะเป็นการเรียกคืน URL ที่
ที่คุณระบุไว้
คำขอไปยัง comgooglemaps-x-callback://
ต้องอยู่ในรูปแบบดังนี้
comgooglemaps-x-callback://?parameters
พารามิเตอร์
รูปแบบ URL เรียกกลับ x ยอมรับพารามิเตอร์เดียวกันกับ comgooglemaps://
ชุดรูปแบบ URL ที่มีพารามิเตอร์เพิ่มเติมต่อไปนี้ ทั้ง 2 พารามิเตอร์
ต้องระบุ
x-source
— ชื่อแอปพลิเคชันที่ส่ง x-callback อีกครั้ง เราขอแนะนำให้ใช้ชื่อย่อx-success
— URL ที่จะเรียกเมื่อดำเนินการเสร็จสมบูรณ์ ซึ่งมักจะเป็น เป็นสคีม URL สำหรับแอปของคุณเอง ซึ่งทำให้ผู้ใช้สามารถกลับไปยัง แอปพลิเคชัน
โปรดทราบว่าแอปจะต้องลงทะเบียนรูปแบบ URL ของตนเองเพื่อให้แอปทำสิ่งต่อไปนี้ได้ ตอบสนองต่อ URL เรียกกลับ
- ตรวจสอบว่าแอปพลิเคชันของคุณได้ลงทะเบียน Scheme ของ URL ที่ตอบกลับได้ ลงในคำขอ Callback
- ส่งต่อป้ายกํากับสําหรับปุ่มติดต่อกลับในพารามิเตอร์
x-source
- ส่ง URL ติดต่อกลับในพารามิเตอร์
x-success
ตัวอย่างต่อไปนี้จะเปิดแอป Google Maps สำหรับ iOS และแสดงแผนที่
ซึ่งมีศูนย์กลางอยู่ที่นิวยอร์ก แอปจะแสดงปุ่มที่มีป้ายกำกับว่า "SourceApp" ด้วย
เมื่อ "SourceApp" เมื่อคลิกปุ่ม แอป Google Maps สำหรับ iOS จะ
การเรียกกลับไปยังสคีม URL ที่สมมติขึ้น sourceapp://?resume=true
comgooglemaps-x-callback://?center=40.765819,-73.975866&zoom=14
&x-success=sourceapp://?resume=true
&x-source=SourceApp
เช่นเดียวกับรูปแบบ URL ของ comgooglemaps://
คุณควรตรวจสอบก่อนว่า
แอป Google Maps สำหรับ iOS มีให้ใช้งานบนอุปกรณ์ และ
รูปแบบ x-callback URL แอปตรวจสอบได้ว่ารูปแบบ URL พร้อมใช้งานหรือไม่
ด้วยรหัสต่อไปนี้
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps-x-callback://"]];
นี่คือตัวอย่างของ URL ที่ช่วยให้ผู้ใช้กลับไปยังแอปหลังจากการค้นหา ของหวาน
comgooglemaps-x-callback://?q=dessert¢er=37.759748,-122.427135
&x-success=sourceapp://?resume=true
&x-source=Nom+Nom
กำลังเพิ่มการนำทางลงในแอป
การเปิดตัวแอป Google Maps สำหรับ iOS ด้วยการขอเส้นทางเป็นวิธีง่ายๆ ในการ
ให้สิทธิ์ผู้ใช้เข้าถึงการนำทางแบบเลี้ยวต่อเลี้ยวจากแอปของคุณ คุณสามารถใช้
รูปแบบ URL comgooglemaps://
หรือ comgooglemaps-x-callback://
ข้อมูลโค้ดนี้จะแสดงวิธีใช้รูปแบบ comgooglemaps-x-callback://
เพื่อ
ขอเส้นทาง แล้วกลับมาที่แอปเมื่อผู้ใช้พร้อม
จะทำงานดังต่อไปนี้
- ยืนยันว่ารูปแบบ URL
comgooglemaps-x-callback://
พร้อมใช้งาน - เปิดแอป Google Maps สำหรับ iOS และขอเส้นทางไปยังสนามบิน JFK ใน นิวยอร์กซิตี้ ปล่อยที่อยู่เริ่มต้นว่างไว้เพื่อขอเส้นทางจาก ตำแหน่งปัจจุบันของผู้ใช้
- เพิ่มปุ่มที่มีป้ายกำกับว่า "AirApp" ไปยังแอป Google Maps สำหรับ iOS ปุ่ม
ป้ายกำกับกำหนดโดยพารามิเตอร์
x-source
- เรียกใช้รูปแบบ URL ที่สมมติขึ้น
sourceapp://
เมื่อผู้ใช้คลิก ปุ่มย้อนกลับ
Swift
let testURL = URL(string: "comgooglemaps-x-callback://")!
if UIApplication.shared.canOpenURL(testURL) {
let directionsRequest = "comgooglemaps-x-callback://" +
"?daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York" +
"&x-success=sourceapp://?resume=true&x-source=AirApp"
let directionsURL = URL(string: directionsRequest)!
UIApplication.shared.openURL(directionsURL)
} else {
NSLog("Can't use comgooglemaps-x-callback:// on this device.")
}
Objective-C
NSURL *testURL = [NSURL URLWithString:@"comgooglemaps-x-callback://"];
if ([[UIApplication sharedApplication] canOpenURL:testURL]) {
NSString *directionsRequest = @"comgooglemaps-x-callback://" +
@"?daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York" +
@"&x-success=sourceapp://?resume=true&x-source=AirApp";
NSURL *directionsURL = [NSURL URLWithString:directionsRequest];
[[UIApplication sharedApplication] openURL:directionsURL];
} else {
NSLog(@"Can't use comgooglemaps-x-callback:// on this device.");
}
การเปิดตัวแอป Google Maps สำหรับ iOS จาก URL บนเดสก์ท็อปของ Google Maps
หากแอปมีสิทธิ์เข้าถึง URL ของ Google Maps ที่มีอยู่แล้ว เช่น ในหน้าเว็บ หรือในฐานข้อมูล คุณสามารถใช้รูปแบบนี้เพื่อเปิด URL ในแอป Google Maps สำหรับ iOS จึงมอบประสบการณ์เนทีฟที่ดีที่สุดให้กับผู้ใช้
- แทนที่สคีม
http://
หรือhttps://
ด้วยcomgooglemapsurl://
- หากต้องการใช้ Callback ให้ใส่
x-source
และx-success
พารามิเตอร์ รูปแบบนี้เป็นไปตามข้อกำหนดเกี่ยวกับ x-callback-url
รูปแบบ URL ของ Google Maps ที่รองรับ
รูปแบบ comgooglemapsurl://
จะรองรับ URL ที่ตรงกับ URL ปกตินี้
นิพจน์ โดยที่ {TLD}
หมายถึงโดเมนระดับประเทศระดับบนสุดใดๆ ที่ถูกต้อง เส้น
เพิ่มช่วงพักโฆษณาเพื่อความชัดเจน ดังนี้
(http(s?)://)?
((maps\.google\.{TLD}/)|
((www\.)?google\.{TLD}/maps/)|
(goo.gl/maps/))
.*
การตรวจสอบความพร้อมใช้งานของแอป Google Maps
ก่อนอื่น ให้ยืนยันว่าแอป Google Maps สำหรับ iOS มีให้ใช้งานบนอุปกรณ์ และ รองรับรูปแบบ URL ดังนี้
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemapsurl://"]];
ตัวอย่าง
ตัวอย่าง URL ของ Google Maps ทั่วไปมีดังนี้
URL เดิมของ Google Maps:
https://www.google.com/maps/preview/@42.585444,13.007813,6z
การใช้รูปแบบ URL
comgooglemapsurl://www.google.com/maps/preview/@42.585444,13.007813,6z
ตัวอย่าง URL ของ Google Maps ทั่วไปมีดังนี้
URL เดิมของ Google Maps:
https://maps.google.com/?q=@37.3161,-122.1836
การใช้รูปแบบ URL
comgooglemapsurl://maps.google.com/?q=@37.3161,-122.1836
ตัวอย่างการขอเส้นทางไปโตเกียวทาวเวอร์ด้วย x-callback
URL เดิมของ Google Maps:
http://maps.google.com/maps?f=d&daddr=Tokyo+Tower,+Tokyo,+Japan&sll=35.6586,139.7454&sspn=0.2,0.1&nav=1
ตัวอย่างต่อไปนี้จะเปิดแอป Google Maps สำหรับ iOS และแสดงแผนที่
พร้อมเส้นทางไปยังโตเกียวทาวเวอร์ตามที่ระบุไว้ใน URL เดิมของ Google Maps
(ด้านบน) แอปจะแสดงปุ่มที่มีป้ายกำกับ
"SourceApp" เมื่อ "SourceApp" นั่นคือแอป Google Maps สำหรับ iOS
จะออก Callback ไปยัง Scheme ของ URL ที่สมมติขึ้น sourceapp://?resume=true
comgooglemapsurl://maps.google.com/maps?f=d&daddr=Tokyo+Tower,+Tokyo,+Japan&sll=35.6586,139.7454&sspn=0.2,0.1&nav=1
&x-source=SourceApp
&x-success=sourceapp://?resume=true