Я работаю с Uber API, который использует uber://?...
URL-адреса для прямой ссылки на собственное приложение Uber. Я создаю мобильный веб-сайт и создаю один из этих URL, как описано здесь ;
На iOS все работает нормально, а на Android приложение Uber открывается и получает только один из параметров product_id
. Поэтому я думаю, что есть некоторая проблема с тем, как я кодирую URL-адрес и как его открывает система Android. Вот мой JS для создания URL:
uber.createURL = function() {
var params = {
"client_id": uber.CLIENT_ID,
"product_id": maps.product_id,
"pickup[latitude]": maps.noSurgeMarker.getPosition().lat(),
"pickup[longitude]": maps.noSurgeMarker.getPosition().lng(),
"dropoff[latitude]": maps.destMarker.getPosition().lat(),
"dropoff[longitude]": maps.destMarker.getPosition().lng(),
"pickup[formatted_address]": $('#pickup').val(),
"dropoff[formatted_address]": $('#destination').val()
};
var url = 'uber://?action=setPickup';
for (var key in params) {
if (params.hasOwnProperty(key)) {
url += ('&' + key + '=' + encodeURIComponent(params[key]));
}
}
return url;
};
Затем я вызываю следующий код, чтобы открыть ссылку:
var url = uber.createURL();
window.location.href = url;
Я упускаю что-то очевидное? Опять же, это работает на iOS, но не на Android. Также странно то, что если я создаю URL-адрес с помощью createURL
на компьютере, отправляю его на свое устройство Android с помощью PushBullet, открытие работает отлично. Но если я получу URL-адрес через Chrome для Android, приложение Uber откроется и будет иметь только product_id
правильное значение, а не какие-либо части получения или высадки.
Примечание. Я уже использовал функцию jQuery params
, но это не сработало лучше, поэтому я перешел к ручному циклу for (var key in params) {...}
.
url += ('&' + encodeURIComponent(key) + '=' + encodeURIComponent(params[key]));
. Я думаю, что квадратные скобки неприятны. - person Eugen Pechanec   schedule 09.01.2015pickup_latitude
вместоpickup[latitude]
. Если это не сработает, у меня нет идей. - person Eugen Pechanec   schedule 09.01.2015