Llamar funcion angularjs desde JavaScript

En una aplicación que estoy haciendo, se я solicito poder abrir la aplicación desde el navegador. Instale el plugin cordova-plugin-customurlscheme устройство определения параграфа esto y funciona а-ля perfección.

Desde el navegador, recibo ciertos доблесть cuando se abre la aplicación, поглощенное устройство определения la funcion handleOpenURL dentro del controlador, pero recibo el error:

Непойманный ReferenceError: handleOpenURL не определяется в:1:1

Ошибка Estuve investigando de este y se soluciona agregandolo en el archivo index.html ООН Комо <script> quedando asi:

<script>
    handleOpenURL = function (url) {
        setTimeout(function(){
            alert(url);
        },0);
    };
</script>

Эмбарго греха, al recibir la URL я gustaria obtener Лос параметро, por ejemplo эй recibo el alert

miapp://?parametro=valor

Y tambien я gustaria manejar eventos de angularjs Комо redireccionar o enviar предупреждение ООН ionic, грешите накладывают эмбарго на desconozco СИ se puede acceder una funcion de un controlador fuera de ella, СИ esto pasa сер mala практика o alguna возможный solucion.

1
задан 10.01.2017, 14:01
0 ответов

в настоящее время я использую услугу, в которой ты нуждаешься в Апп Ионик, рекомендую тебе делать это следующим способом:

1 - Установи следующий plugin и измени testapp по имени, которое ты хочешь:

    cordova plugin add https://github.com/EddyVerbruggen/LaunchMyApp-PhoneGap-Plugin.git \
 --variable URL_SCHEME=testapp

2 - В твоем вставленном app.js этот фрагмент кода:

.run(['$state', '$window',
    function($state, $window) {
        $window.addEventListener('LaunchUrl', function(event) {
            // gets page name from url
            var page =/.*:[/]{2}([^?]*)[?]?(.*)/.exec(event.detail.url)[1];
            // redirects to page specified in url
            $state.go('app.'+ page, {});
        });
    }
]);

function handleOpenURL(url) {
    setTimeout( function() {
        var event = new CustomEvent('LaunchUrl', {detail: {'url': url}});
        window.dispatchEvent(event);
    }, 0);
}

3 - Добавь состояние к твоему router provider:

.state('app.page, {
    url: '/page,
    views: {
        'menuContent': {
            templateUrl: 'templates/yourtempalte.html',
            controller: 'PageCtrl'
        }
    }
})

4 - Из твоего Веба app позвони в window.location = 'testapp://параметр' и оно было бы должно функционировать.

Уже ты рассказываешь нам, привет:

2
ответ дан 03.12.2019, 17:46
  • 1
    Привет Давид, спасибо за ответ. Правда состоит в том, что я продолжил твои советы, но у меня остается одиноким сомнение, необходимо определять router provider? Я, что я сделал, он состоял в том, чтобы создавать драйвер, без одного сдержись и я функционирую правильно! –  10.01.2017, 15:37
  • 2
    Привет друг, он не необходим, был одиноким в случае, если, войдя в App с Веба, он пойдет в какой-то специальный вид, ты можешь снимать это и помещать có я говорю, что ты хотел, например alert, который у тебя есть. –  10.01.2017, 15:43
  • 3
    Большое спасибо из-за твоей помощи! сделай мне отруби :D –  10.01.2017, 15:44
  • 4
    Я радуюсь многий, что ты был funcionado¡ aquí мы расположены помогать, saludos¡ –  10.01.2017, 15:45

Теги

Похожие вопросы