Удостоверяване с помощта на Apache Cordova за Visual Studio

Работя върху междуплатформено приложение за Twitter, използвайки Cordova във Visual Studio и съм заседнал при удостоверяването на акаунта в Twitter.
Когато насочвам Windows/Windows Phone, мога да използвам Windows.Security.Authentication.Web.WebAuthenticationBroker.authenticateAsync API и да свърша работата. Но за Android или IOS не мога да използвам API, тъй като се оплаква, че Windows е недефиниран.

Може ли някой да ми помогне с примерен код или предложение за това как трябва да правя удостоверяване с помощта на JavaScript?


person Jagannath    schedule 14.01.2016    source източник


Отговори (2)


Мисля, че не трябва да разчитате на Windows API в приложение за различни платформи, тъй като то няма да бъде достъпно на никоя друга платформа освен Windows. Вместо това може да искате да се удостоверите с решение на javascript, което работи на всяка платформа.
Има няколко възможности да направите това в js, в зависимост от това какви рамки и библиотеки използвате в приложението си: Можете да удостоверите чрез $.ajax, ако използвате jquery или услугата $http, ако използвате angular... Ако не използвате библиотека, можете да използвате XMLHttpRequest.

person Phonolog    schedule 14.01.2016
comment
Ще се опитам да се върна. - person Jagannath; 18.01.2016

Намерих решение с помощта на плъгина InAppBrowser от Cordova.

Добавете приставката към вашия проект и след това вземете кода по-долу, за да упълномощите приложението си.

var self = this;
var ref = cordova.InAppBrowser.open(startURI, '_blank', 'location=yes');
ref.show();    
ref.addEventListener('loadstart', function (event) {
   if (event.url && event.url.match('oauth_verifier'))
   {                            
       ref.close();
       self._continueAuthentication(event.url, callback);
   } 
});

ref.addEventListener('loadstop', function (event) {
});

ref.addEventListener('exit', function (response) {
});

_continueAuthentication: function (returnedTokens, callback) {
        var self = this, oauthVerifier, oauthToken;
        var responseKeyValPairs = returnedTokens.split("?")[1].split("&");

        //Disect the important parts
        for (i = 0; i < responseKeyValPairs.length; i++) {
            splits = responseKeyValPairs[i].split("=");
            switch (splits[0]) {
                case "oauth_verifier":
                    oauthVerifier = splits[1];
                    break;
                case "oauth_token":
                    oauthToken = splits[1];
                    break;
       }
}
person Jagannath    schedule 20.01.2016