Киоск 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)