Пользовательские вкладки Chrome не перенаправляют обратно в гибридное приложение - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь использовать функцию интеграции oauth в моем приложении Hybrid и использую angularjs 1 с cordova.Я пытался использовать этот плагин https://github.com/EddyVerbruggen/cordova-plugin-safariviewcontroller вместе с https://github.com/EddyVerbruggen/Custom-URL-scheme

Но это не так просто и понятно для меня.У меня две проблемы

  1. Невозможно перенаправить в приложение после выполнения oauth.
  2. Как закрыть пользовательскую вкладку Chrome и получить данные в приложении после выполнения oauth.

Вот что я пытаюсь сделать.

Код на стороне клиента:

var options=[{url:oauthPostURL,hidden:false,animated:false}];
$scope.openUrl = function(options) {
            console.log("inside openurl--");
            var deferred  = $q.defer();
            try{
                cordova.exec( 
            // success function
            function(response){
                       deferred.resolve(response);
                    },
              //failure function
                    function(response){
                        deferred.resolve(false);
                    },
              "ChromeCustomTabPlugin", "show", options);

            }catch(e){
                console.log("error in corodva plugin ::"+e);
            }
            return deferred.promise;
        }

 function handleOpenURL(url) {
  setTimeout(function() {
    //SafariViewController.hide();
    var data = decodeURIComponent(url.substr(url.indexOf('=')+1));
    console.log('Browser data received: ' + data);
  }, 0);
}

, кто будет вызывать эту функцию handleopenurl?

В плагине естьнет способа скрыть (), чтобы закрыть пользовательскую вкладку Chrome

ServerSide :

Я использую ChromeCustomTabPlugin.java из плагина, упомянутого выше

Пожалуйста, помогите мне бороться с 2 дня.Было бы здорово, если бы кто-нибудь смог привести пример из конца в конец

1 Ответ

0 голосов
/ 28 октября 2018

Я решил это сам.Есть несколько ошибок.Я добавил плагин custom-url-schema вручную.

  • Функция HandleopenUrl для размещения на странице, которая является глобальной, я поместил функцию в index.html, которая является моей стартовой страницей.

  • Файл LaunchMyApp.java, который находится внутри custom-url-plugin, отсутствует

  • Файл launchMyApp.js отсутствует.

    <plugin name="cordova-plugin-customurlscheme" spec="^4.3.0">
        <variable name="URL_SCHEME" value="" />
        <variable name="ANDROID_SCHEME" value="" />
        <variable name="ANDROID_HOST" value="" />
        <variable name="ANDROID_PATHPREFIX" value="/" />
     </plugin>
  • Эта строка в config.xml отсутствует.
...