Я установил последнюю версию PhoneGap (3.3), упаковал свое HTML-приложение Mobile Services и столкнулся с известной проблемой авторизации:
Вход поддерживается только с URL-адресов http:// и https://. Разместите свою страницу на веб-сервере
Я искал эту проблему в Интернете (http://social.msdn.microsoft.com/Forums/windowsazure/en-US/a2386093-73cd-44fb-a418-4fa83a36c800/phonegap-apps-using-the-new-html-client-for-azure-mobile-services-is-not-working?forum=azuremobile), но решение не работает для меня. Проект, созданный с помощью phonegap, ссылается на <script type="text/javascript" src="phonegap.js"></script>
, но даже когда я изменил его на <script type="text/javascript" src="cordova.js"></script>
, он не работает.
Есть ли решение этой проблемы?
Мой исходный код:
<html>
<head>
<meta charset="utf-8" />
<title>Report</title>
<meta name="format-detection" content="telephone=no" />
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height" />
<script type="text/javascript" src="cordova.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/mobileservices/MobileServices.Web-1.1.0.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script src="myscript.js"></script>
</head>
myscript.js
var app = {
initialize: function() {
document.addEventListener('deviceready', this.onDeviceReady, false);
},
onDeviceReady: function() {
var client = new WindowsAzure.MobileServiceClient(
"https://myapp.azure-mobile.net/", "XXX");
client.login("google").done(....
},
};
$(document).ready(function documentReady() {
app.initialize();
});
Редактировать 21.12.
По-видимому, PhoneGap 3 больше не сообщает свою версию в window.device.cordova
, где ее проверяют мобильные службы. Но даже подделка не помогла - после авторизации в гугле уходит на пустую страницу.