Trên các thiết bị chạy iOS 9 trở lên, bạn có thể dùng Đường liên kết phổ quát để chạy Google Maps khi có một URL Google Maps.
Bạn có thể sử dụng lược đồ URL của Google Maps để chạy ứng dụng Google Maps cho iOS, thực hiện các cụm từ tìm kiếm, nhận yêu cầu chỉ đường và hiển thị chế độ xem bản đồ. Khi bạn chạy Google Maps, giá trị nhận dạng gói của bạn sẽ tự động được gửi trong yêu cầu.
Bạn không cần khoá API của Google để sử dụng giản đồ URL của Google Maps.
Đường liên kết phổ quát và Google Maps
Google Maps cho iOS hỗ trợ Đường liên kết phổ quát trên các thiết bị chạy iOS 9 trở lên.
Nếu URL của bạn khớp với biểu thức chính quy sau và thiết bị đang chạy iOS 9 trở lên, bạn nên cân nhắc sử dụng trực tiếp phương thức openURL:.
(http(s?)://)?
((maps\.google\.{TLD}/)|
((www\.)?google\.{TLD}/maps/)|
(goo.gl/maps/))
.*
Ví dụ:
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"]];
Tổng quan
Lược đồ URL cho phép bạn chạy một ứng dụng iOS gốc từ một ứng dụng iOS khác hoặc một ứng dụng web. Bạn có thể đặt các lựa chọn trong URL sẽ được truyền đến ứng dụng đã khởi chạy. Ứng dụng Google Maps cho iOS hỗ trợ các lược đồ URL sau:
comgooglemaps://
vàcomgooglemaps-x-callback://
– Các lược đồ này cho phép bạn chạy ứng dụng Google Maps cho iOS và thực hiện một trong số các thao tác sau:- Hiển thị bản đồ ở một vị trí và mức thu phóng cụ thể.
- Tìm kiếm vị trí hoặc địa điểm và hiển thị trên bản đồ.
- Yêu cầu chỉ đường từ vị trí này đến vị trí khác. Bạn có thể nhận được chỉ đường cho 4 phương thức di chuyển: lái xe, đi bộ, đi xe đạp và phương tiện công cộng.
- Thêm chế độ điều hướng vào ứng dụng.
- Thông qua iOS 8, hãy đưa ra một lệnh gọi lại khi ứng dụng đã hoàn tất, bằng cách sử dụng
comgooglemaps-x-callback://
. Lệnh gọi lại thường được dùng để đưa người dùng trở lại ứng dụng đã mở Google Maps cho iOS ban đầu. Xin lưu ý rằng trên iOS 9, hệ thống sẽ tự động cung cấp một đường liên kết "Quay lại" ở góc bên trái của thanh trạng thái.
comgooglemapsurl://
– Lược đồ này cho phép bạn chạy ứng dụng Google Maps cho iOS bằng một URL bắt nguồn từ trang web Google Maps dành cho máy tính. Điều này có nghĩa là bạn có thể mang đến cho người dùng trải nghiệm gốc trên thiết bị di động thay vì chỉ tải trang web Google Maps.- URL ban đầu có thể là
maps.google.com
hoặcgoogle.com/maps
, hoặc sử dụng bất kỳ miền cấp cao nhất hợp lệ nào theo quốc gia thay vìcom
. Bạn cũng có thể truyền các URL chuyển hướnggoo.gl/maps
. - Bạn có thể đưa ra một lệnh gọi lại bằng cách sử dụng các tham số
x-source
vàx-success
với lược đồ URLcomgooglemapsurl://
.
- URL ban đầu có thể là
Chạy ứng dụng Google Maps dành cho iOS và thực hiện một chức năng cụ thể
Để chạy ứng dụng Google Maps cho iOS và tuỳ ý thực hiện một trong các hàm được hỗ trợ, hãy dùng một giản đồ URL có dạng sau:
comgooglemaps://?parameters
hoặc:
comgooglemaps-x-callback://?parameters
Các tham số được mô tả chi tiết ở phần sau của tài liệu này.
Kiểm tra xem ứng dụng Google Maps có dùng được trên thiết bị hay không
Trước khi trình bày một trong những URL này cho người dùng trong ứng dụng của bạn, trước tiên, bạn nên xác minh rằng ứng dụng đã được cài đặt. Ứng dụng của bạn có thể kiểm tra xem có sẵn giản đồ URL hay không bằng mã sau:
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps://"]];
Ví dụ: để hiển thị bản đồ Công viên Trung tâm ở New York, bạn có thể dùng mã sau:
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://");
}
Hiển thị bản đồ
Sử dụng lược đồ URL để hiển thị bản đồ ở một mức thu phóng và vị trí cụ thể. Bạn cũng có thể phủ các chế độ xem khác lên trên bản đồ hoặc hiển thị hình ảnh Chế độ xem đường phố.
Tham số
Tất cả các thông số sau đây đều không bắt buộc. Nếu bạn không đặt thông số nào, lược đồ URL sẽ chạy ứng dụng Google Maps cho iOS.
center
: Đây là điểm trung tâm của khung hiển thị bản đồ. Được định dạng dưới dạng một chuỗilatitude,longitude
phân tách bằng dấu phẩy.mapmode
: Đặt loại bản đồ sẽ hiển thị. Có thể đặt thành:standard
hoặcstreetview
. Nếu không chỉ định, hệ thống sẽ sử dụng chế độ cài đặt ứng dụng hiện tại.views
: Bật/tắt các khung hiển thị cụ thể. Bạn có thể đặt thành:satellite
,traffic
hoặctransit
. Bạn có thể đặt nhiều giá trị bằng cách sử dụng dấu phẩy làm dấu phân cách. Nếu bạn chỉ định tham số mà không có giá trị, thì tham số đó sẽ xoá tất cả các khung hiển thị.zoom
: Chỉ định mức thu phóng của bản đồ.
URL ví dụ này hiển thị bản đồ được căn giữa ở New York ở mức thu phóng 14 với chế độ xem giao thông đang bật:
comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic
Sau đây là một số ví dụ khác:
comgooglemaps://?center=37.788463,-122.392545&zoom=12
comgooglemaps://?center=46.414382,10.013988&mapmode=streetview
Tìm kiếm
Sử dụng lược đồ này để hiển thị cụm từ tìm kiếm ở một vị trí cụ thể trong khung hiển thị.
Tham số
Ngoài các tham số dùng để hiển thị bản đồ, Tìm kiếm còn hỗ trợ tham số q
.
q
: Chuỗi truy vấn cho nội dung tìm kiếm của bạn.
Đây là URL mẫu để tìm kiếm "Pizza" ở vị trí được chỉ định:
comgooglemaps://?q=Pizza¢er=37.759748,-122.427135
Sau đây là một số ví dụ khác:
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
Hiển thị đường đi
Sử dụng lược đồ này để yêu cầu và hiển thị chỉ đường giữa hai vị trí. Bạn cũng có thể chỉ định phương tiện giao thông.
Tham số
saddr
: Đặt điểm bắt đầu cho các cụm từ tìm kiếm chỉ đường. Đây có thể là một vĩ độ,kinh độ hoặc một địa chỉ được định dạng theo truy vấn. Nếu đó là một chuỗi truy vấn trả về nhiều kết quả, thì kết quả đầu tiên sẽ được chọn. Nếu bạn để trống giá trị này, thì vị trí hiện tại của người dùng sẽ được sử dụng.daddr
: Đặt điểm cuối cho các lượt tìm kiếm chỉ đường. Có cùng định dạng và hành vi nhưsaddr
.directionsmode
: Phương tiện vận chuyển. Có thể đặt thành:driving
,transit
,bicycling
hoặcwalking
.
URL ví dụ này hiển thị chỉ đường đi phương tiện công cộng giữa Google NYC và Sân bay JFK:
comgooglemaps://?saddr=Google+Inc,+8th+Avenue,+New+York,+NY&daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York&directionsmode=transit
Sau đây là một số ví dụ khác:
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
Chỉ định URL gọi lại
Nếu muốn chỉ định một URL gọi lại, bạn phải sử dụng lược đồ URL comgooglemaps-x-callback://
. Lược đồ này tuân thủ thông số x-callback-url. Khi bạn gọi ứng dụng Google Maps cho iOS bằng lược đồ này, ứng dụng sẽ hiển thị một nút ở đầu màn hình. Khi bạn nhấn vào nút này, một lệnh gọi lại sẽ được gửi đến URL mà bạn đã chỉ định.
Các yêu cầu đối với comgooglemaps-x-callback://
phải có dạng:
comgooglemaps-x-callback://?parameters
Tham số
Giao thức URL x-callback chấp nhận các tham số giống như giao thức URL comgooglemaps://
, cùng với các tham số bổ sung sau. Cả hai tham số đều bắt buộc.
x-source
– Tên của ứng dụng gửi yêu cầu x-callback. Bạn nên sử dụng tên ngắn.x-success
– URL cần gọi khi hoàn tất. Thông thường, đây sẽ là một lược đồ URL cho ứng dụng của riêng bạn, cho phép người dùng quay lại ứng dụng ban đầu.
Xin lưu ý rằng ứng dụng của bạn sẽ phải đăng ký lược đồ URL riêng để có thể phản hồi URL gọi lại.
- Đảm bảo rằng ứng dụng của bạn đã đăng ký một lược đồ URL có thể phản hồi yêu cầu gọi lại.
- Truyền nhãn cho nút gọi lại trong tham số
x-source
. - Truyền URL gọi lại trong tham số
x-success
.
Ví dụ sau đây sẽ khởi chạy ứng dụng Google Maps cho iOS và hiển thị một bản đồ có tâm là New York. Ứng dụng cũng sẽ hiển thị một nút có nhãn "SourceApp".
Khi người dùng nhấp vào nút "SourceApp", ứng dụng Google Maps dành cho iOS sẽ đưa ra một lệnh gọi lại cho một giản đồ URL giả định, sourceapp://?resume=true
.
comgooglemaps-x-callback://?center=40.765819,-73.975866&zoom=14
&x-success=sourceapp://?resume=true
&x-source=SourceApp
Tương tự như giản đồ URL comgooglemaps://
, trước tiên, bạn nên xác minh rằng ứng dụng Google Maps cho iOS có trên thiết bị và hỗ trợ giản đồ URL x-callback. Ứng dụng của bạn có thể kiểm tra xem giản đồ URL có dùng được hay không bằng mã sau:
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps-x-callback://"]];
Đây là ví dụ về một URL cho phép người dùng quay lại ứng dụng sau khi tìm kiếm món tráng miệng.
comgooglemaps-x-callback://?q=dessert¢er=37.759748,-122.427135
&x-success=sourceapp://?resume=true
&x-source=Nom+Nom
Thêm thành phần điều hướng vào ứng dụng
Việc chạy ứng dụng Google Maps cho iOS bằng một yêu cầu chỉ đường là một cách dễ dàng để cho phép người dùng truy cập vào chỉ dẫn từng chặng từ ứng dụng của bạn. Bạn có thể sử dụng một trong hai lược đồ URL comgooglemaps://
hoặc comgooglemaps-x-callback://
.
Đoạn mã này cho biết cách sử dụng lược đồ comgooglemaps-x-callback://
để yêu cầu chỉ đường, sau đó quay lại ứng dụng của bạn khi người dùng đã sẵn sàng. Mã này sẽ thực hiện những việc sau:
- Xác minh rằng giao thức URL
comgooglemaps-x-callback://
có sẵn. - Khởi chạy ứng dụng Google Maps cho iOS rồi yêu cầu chỉ đường đến Sân bay JFK ở thành phố New York. Để trống địa chỉ bắt đầu để yêu cầu chỉ đường từ vị trí hiện tại của người dùng.
- Thêm một nút có nhãn "AirApp" vào ứng dụng Google Maps cho iOS. Nhãn nút được xác định bằng tham số
x-source
. - Gọi lược đồ URL giả định,
sourceapp://
, khi người dùng nhấp vào nút quay lại.
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.");
}
Khởi chạy ứng dụng Google Maps dành cho iOS từ một URL trên Google Maps dành cho máy tính
Nếu ứng dụng của bạn có quyền truy cập vào một URL Google Maps có sẵn (chẳng hạn như trên một trang web hoặc trong cơ sở dữ liệu), bạn có thể sử dụng lược đồ này để mở URL đó trong ứng dụng Google Maps cho iOS, nhờ đó mang đến cho người dùng trải nghiệm gốc tốt nhất.
- Thay thế lược đồ
http://
hoặchttps://
bằngcomgooglemapsurl://
. - Nếu bạn muốn sử dụng một lệnh gọi lại, hãy thêm các tham số
x-source
vàx-success
. Lược đồ này tuân thủ thông số x-callback-url.
Các định dạng URL được Google Maps hỗ trợ
Lược đồ comgooglemapsurl://
hỗ trợ những URL khớp với biểu thức chính quy này, trong đó {TLD}
đề cập đến mọi miền quốc gia cấp cao nhất hợp lệ. Dấu ngắt dòng được thêm vào để rõ ràng hơn:
(http(s?)://)?
((maps\.google\.{TLD}/)|
((www\.)?google\.{TLD}/maps/)|
(goo.gl/maps/))
.*
Kiểm tra xem ứng dụng Google Maps có hoạt động hay không
Trước tiên, hãy xác minh rằng ứng dụng Google Maps cho iOS có trên thiết bị và hỗ trợ giản đồ URL:
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemapsurl://"]];
Ví dụ
Ví dụ về URL chung của Google Maps:
URL gốc trên Google Maps:
https://www.google.com/maps/preview/@42.585444,13.007813,6z
Sử dụng lược đồ URL:
comgooglemapsurl://www.google.com/maps/preview/@42.585444,13.007813,6z
Ví dụ về URL chung của Google Maps:
URL gốc trên Google Maps:
https://maps.google.com/[email protected],-122.1836
Sử dụng lược đồ URL:
comgooglemapsurl://maps.google.com/[email protected],-122.1836
Ví dụ về yêu cầu chỉ đường đến Tháp Tokyo bằng x-callback:
URL gốc trên 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
Ví dụ sau đây sẽ khởi chạy ứng dụng Google Maps cho iOS và hiển thị bản đồ có chỉ đường đến Tháp Tokyo, như được chỉ định trong URL ban đầu của Google Maps (ở trên). Ứng dụng cũng sẽ hiển thị một nút có nhãn "SourceApp". Khi người dùng nhấp vào nút "SourceApp", ứng dụng Google Maps cho iOS sẽ đưa ra một lệnh gọi lại cho một lược đồ URL giả định, 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