Инсталирах най-новата версия на PhoneGap (3.3), пакетирах моето HTML приложение за мобилни услуги и срещнах известния проблем с оторизацията:
Входът се поддържа само от http:// и https:// URL адреси. Моля, хоствайте страницата си в уеб сървър
Търсих в интернет този проблем (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
, където Mobile Services го проверява. Но дори и фалшифицирането не помогна - след авторизация в Google отива на празна страница.