Не в состоянии использовать API киоска в проекте VUE - PullRequest
0 голосов
/ 30 ноября 2018

Киоск js api:

https://www.kioskproapp.com/api/kiosk_functions.js

Киоск js api doc:

https://docs.kioskproapp.com/article/433-access-device-ids

Я пытаюсь использовать kp_requestKioskIdи я добавил две функции в kiosk_functions.js

, чтобы я мог импортировать из моего проекта vue.

kiosk_functions.js

...
// *** functions that I modified ***
function ___kp_executeURL(url){
    var iframe = document.createElement("IFRAME");
    iframe.setAttribute("src", url);
    document.documentElement.appendChild(iframe);
    iframe.parentNode.removeChild(iframe);
    iframe = null;
}
function kp_requestKioskId(callback){
    ___kp_executeURL("kioskpro://kp_requestKioskId?" + encodeURIComponent(callback));
}
export {
    ___kp_executeURL,
    kp_requestKioskId
}

test.vue

import * as kiosk from '../assets/js/kiosk_functions.js'
...
methods: {
    updatePage () {
      kiosk.kp_requestKioskId("kp_requestKioskId_callback")
    },
    kp_requestKioskId_callback (kioskID) {
      this.id = kioskID
    }
},
mounted () {
    this.updatePage()
}

сообщение от Google Chrome

Из Chrome я вижу, что создан iframe, но обратный вызов не вызывается.

И когда я запускаю его в приложении Kiosk, this.id равно нулю.

Что мне делать?

ОБНОВЛЕНИЕ

Это работает.

let kioskScript = document.createElement('script');
kioskScript.setAttribute('src','https://www.kioskproapp.com/api/kiosk_functions.js');
document.head.appendChild(kioskScript)

let injectScript = document.createElement('script');
injectScript.text = 'function your_function() { ... }'
document.head.appendChild(injectScript)
...