บนอุปกรณ์ที่ใช้ 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 สนับสนุน Universal Links ในอุปกรณ์ที่ใช้ 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 Maps สำหรับ iOS และดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้ได้- แสดงแผนที่ในตำแหน่งและระดับการซูมที่ระบุ
- ค้นหาสถานที่หรือสถานที่ แล้วแสดงบนแผนที่
- ขอเส้นทางจากสถานที่หนึ่งไปยังอีกสถานที่หนึ่ง เราสามารถส่งคืนเส้นทางได้ใน 4 รูปแบบการเดินทาง ได้แก่ การขับรถ การเดิน การขี่จักรยาน และขนส่งสาธารณะ
- เพิ่มการนำทางลงในแอป
- สำหรับ iOS 8 ให้ทำการเรียกกลับเมื่อแอปเสร็จสมบูรณ์ โดยใช้
comgooglemaps-x-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
ได้ด้วย - คุณดำเนินการ Callback ได้โดยใช้พารามิเตอร์
x-source
และx-success
กับรูปแบบ URLcomgooglemapsurl://
- URL เดิมอาจเป็นของ
การเปิดตัวแอป Google Maps สำหรับ iOS และการทำงานที่เจาะจง
หากต้องการเปิดแอป Google Maps สำหรับ iOS และเลือกใช้ฟังก์ชันใดฟังก์ชันหนึ่งที่รองรับ ให้ใช้รูปแบบ URL ในรูปแบบต่อไปนี้
comgooglemaps://?parameters
หรือ
comgooglemaps-x-callback://?parameters
เราจะอธิบายพารามิเตอร์โดยละเอียดภายหลังในเอกสารนี้
กำลังตรวจสอบความพร้อมให้บริการของแอป Google Maps บนอุปกรณ์
ก่อนที่จะแสดง URL ใด 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-callback ยอมรับพารามิเตอร์เดียวกับรูปแบบ URL comgooglemaps://
พร้อมพารามิเตอร์เพิ่มเติมต่อไปนี้ ซึ่งจำเป็นต้องใช้พารามิเตอร์ทั้ง 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 ที่ตรงกับนิพจน์ทั่วไปนี้ โดยที่ {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 จะออกการเรียกกลับไปยังชุดรูปแบบ 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