ในอุปกรณ์ที่ใช้ 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://
โดยทั่วไปแล้ว 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 NYC กับสนามบิน 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 ได้
- ส่งป้ายกํากับสําหรับปุ่ม 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 พร้อมใช้งานบนอุปกรณ์และรองรับรูปแบบ URL x-callback แอปของคุณสามารถตรวจสอบได้ว่ารูปแบบ 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