|
<html> |
|
<head> |
|
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous"> |
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> |
|
<script> |
|
|
|
var launchPageConfig = { |
|
"apps": [{ |
|
"icon": "https://uswest.appetize.io/images/sample-icon.png", |
|
"iOS": { |
|
"publicKey": "demo_phq04c56jnvrkg0bn9w5ep4m9r", |
|
"languages": [{ |
|
"locale": "en_CA", |
|
"language": "en", |
|
"name": "English" |
|
}, { |
|
"locale": "fr_CA", |
|
"language": "fr", |
|
"iosKeyboard": "fr_CA@sw=QWERTY-Accents", |
|
"name": "French" |
|
}], |
|
"devices": [{ |
|
"name": "Phone", |
|
"type": "iphone8" |
|
}, { |
|
"name": "Tablet", |
|
"type": "ipadair2" |
|
}] |
|
}, |
|
"Android": { |
|
"publicKey": "demo_r0m5r98axtdhftx1hmmhq1c0m8", |
|
"languages": [{ |
|
"language": "en_CA", |
|
"name": "English" |
|
}, { |
|
"language": "fr_CA", |
|
"name": "French" |
|
}], |
|
"devices": [{ |
|
"name": "Phone", |
|
"type": "nexus5" |
|
}, { |
|
"name": "Tablet", |
|
"type": "nexus9" |
|
}] |
|
} |
|
}], |
|
"options": { |
|
"hidePasswords": true |
|
} |
|
}; |
|
|
|
$( document ).ready(function() { |
|
|
|
var appElements = []; |
|
for (var i = 0; i < launchPageConfig.apps.length; i++) { |
|
appElements.push("<a onclick='selectApp(" + i + ");'><img src='" + launchPageConfig.apps[i].icon + "' class='launch-icon'/></a>"); |
|
} |
|
$('#apps').empty(); |
|
$('#apps').append(appElements); |
|
selectApp(0); |
|
}); |
|
|
|
var selectedApp = 0; |
|
function selectApp(index) { |
|
if (!sessionActive || confirm('This will restart your session. Do you want to continue?')) { |
|
sessionActive = false; |
|
selectedApp = index; |
|
$('#apps .selected').removeClass('selected'); |
|
$($('#apps img')[selectedApp]).addClass('selected'); |
|
|
|
var platformElements = []; |
|
if (launchPageConfig.apps[index].iOS) |
|
platformElements.push("<a onclick=\"selectPlatform('iOS');\"><button type=\"button\" class=\"btn btn-info\">iOS</button></a>"); |
|
if (launchPageConfig.apps[index].Android) |
|
platformElements.push("<a onclick=\"selectPlatform('Android');\"><button type=\"button\" class=\"btn btn-info\">Android</button></a>"); |
|
$('#platforms').empty(); |
|
$('#platforms').append(platformElements); |
|
|
|
if (launchPageConfig.apps[index].iOS) |
|
selectPlatform('iOS'); |
|
else if (launchPageConfig.apps[index].Android) |
|
selectPlatform('Android'); |
|
} |
|
} |
|
var selectedPlatform; |
|
function selectPlatform(platform) { |
|
if (!sessionActive || confirm('This will restart your session. Do you want to continue?')) { |
|
sessionActive = false; |
|
$('#savescreenshot').hide(); |
|
$('#endsession').hide(); |
|
selectedPlatform = platform; |
|
$('#platforms .selected').removeClass('selected'); |
|
$('#platforms .btn:contains("'+selectedPlatform+'")').addClass('selected'); |
|
var deviceElements = []; |
|
if (launchPageConfig.apps[selectedApp][platform].devices && launchPageConfig.apps[selectedApp][selectedPlatform].devices.length > 0) { |
|
for (var i = 0; i < launchPageConfig.apps[selectedApp][platform].devices.length; i++) { |
|
var element = $(document.createElement('a')); |
|
element.attr("onclick", "selectDevice(launchPageConfig.apps[selectedApp][selectedPlatform].devices["+i+"])"); |
|
element.append("<button type=\"button\" class=\"btn btn-info\">"+launchPageConfig.apps[selectedApp][selectedPlatform].devices[i].name+"</button>"); |
|
deviceElements.push(element); |
|
} |
|
$('#devices').empty(); |
|
$('#devices').append(deviceElements); |
|
selectDevice(launchPageConfig.apps[selectedApp][selectedPlatform].devices[0]); |
|
} |
|
var languageElements = []; |
|
if (launchPageConfig.apps[selectedApp][selectedPlatform].languages && launchPageConfig.apps[selectedApp][selectedPlatform].languages.length > 0) { |
|
for (var i = 0; i < launchPageConfig.apps[selectedApp][selectedPlatform].languages.length; i++) { |
|
var element = $(document.createElement('a')); |
|
element.attr("onclick", "selectLanguage(launchPageConfig.apps[selectedApp][selectedPlatform].languages["+i+"])"); |
|
element.append("<button type=\"button\" class=\"btn btn-info\">"+launchPageConfig.apps[selectedApp][selectedPlatform].languages[i].name+"</button>"); |
|
|
|
languageElements.push(element); |
|
} |
|
$('#languages').empty(); |
|
$('#languages').append(languageElements); |
|
selectLanguage(launchPageConfig.apps[selectedApp][selectedPlatform].languages[0]); |
|
} |
|
} |
|
} |
|
var selectedDevice; |
|
function selectDevice(device) { |
|
if (!sessionActive || confirm('This will restart your session. Do you want to continue?')) { |
|
sessionActive = false; |
|
$('#savescreenshot').hide(); |
|
$('#endsession').hide(); |
|
selectedDevice = device; |
|
$('#devices .selected').removeClass('selected'); |
|
$('#devices .btn:contains("'+selectedDevice.name+'")').addClass('selected'); |
|
updateIframeSrcUrl(); |
|
} |
|
} |
|
var selectedLanguage = {}; |
|
function selectLanguage(language) { |
|
if (!sessionActive || confirm('This will restart your session. Do you want to continue?')) { |
|
sessionActive = false; |
|
$('#savescreenshot').hide(); |
|
$('#endsession').hide(); |
|
selectedLanguage = language; |
|
$('#languages .selected').removeClass('selected'); |
|
$('#languages .btn:contains("'+selectedLanguage.name+'")').addClass('selected'); |
|
updateIframeSrcUrl(); |
|
} |
|
} |
|
function updateIframeSrcUrl() { |
|
var url = 'https://appetize.io/embed/' + launchPageConfig.apps[selectedApp][selectedPlatform].publicKey + '?deviceColor=white¢ered=true&toast=top&xdocMsg=true&device=' + selectedDevice.type + '&language=' + selectedLanguage.language + '&locale=' + selectedLanguage.locale + '&iosKeyboard=' + selectedLanguage.iosKeyboard + '&hidePasswords=' + launchPageConfig.options.hidePasswords + '&orientation=auto'; |
|
$('#app_iframe').attr('src', url); |
|
iframe = document.querySelector('iframe'); |
|
} |
|
$(document).on('input', '#slider', function() { |
|
setScale( $(this).val()*100 ); |
|
}); |
|
|
|
var iframe = document.querySelector('iframe'); |
|
function rotateLeft() { |
|
iframe.contentWindow.postMessage('rotateLeft', '*'); |
|
} |
|
function rotateRight() { |
|
iframe.contentWindow.postMessage('rotateRight', '*'); |
|
} |
|
function setScale(number) { |
|
iframe.contentWindow.postMessage({ |
|
type: 'setScale', |
|
value: number |
|
}, '*'); |
|
} |
|
function saveScreenshot() { |
|
iframe.contentWindow.postMessage('saveScreenshot', '*'); |
|
} |
|
function endSession() { |
|
if (!sessionActive || confirm('This will restart your session. Do you want to continue?')) { |
|
iframe.contentWindow.postMessage('endSession', '*'); |
|
} |
|
} |
|
|
|
var sessionActive; |
|
var messageEventHandler = function(event) { |
|
if (event.data == 'appLaunch') { |
|
sessionActive = true; |
|
$('#savescreenshot').show(); |
|
$('#endsession').show(); |
|
} else if (event.data == 'sessionEnded') { |
|
sessionActive = false; |
|
$('#savescreenshot').hide(); |
|
$('#endsession').hide(); |
|
} |
|
}; |
|
window.addEventListener('message', messageEventHandler, false); |
|
</script> |
|
<style> |
|
body { |
|
padding: 20px; |
|
} |
|
a { |
|
cursor: pointer; |
|
} |
|
.launch-icon { |
|
width: 50px; |
|
border-radius: 5px; |
|
} |
|
button{ |
|
margin-bottom: 10px; |
|
} |
|
.toggles .btn:not(.selected), |
|
.toggles img:not(.selected) { |
|
opacity: .4; |
|
} |
|
</style> |
|
</head> |
|
<body> |
|
<h5> |
|
Platform |
|
</h5> |
|
<div id="platforms" class="toggles"><a onclick="selectPlatform('iOS');"><button type="button" class="btn btn-info selected">iOS</button></a><a onclick="selectPlatform('Android');"><button type="button" class="btn btn-info">Android</button></a></div> |
|
<br> |
|
<h5> |
|
Device |
|
</h5> |
|
<div id="devices" class="toggles"><a onclick="selectDevice(launchPageConfig.apps[selectedApp][selectedPlatform].devices[0])"><button type="button" class="btn btn-info selected">Phone</button></a><a onclick="selectDevice(launchPageConfig.apps[selectedApp][selectedPlatform].devices[1])"><button type="button" class="btn btn-info">Tablet</button></a></div> |
|
<h5> |
|
Rotate |
|
</h5> |
|
<div id="rotate" class="toggles"><a onclick="rotateLeft();"><button type="button" class="btn btn-info selected">Rotate</button></a></div> |
|
|
|
<div class="col-md-9"> |
|
<iframe id="app_iframe" width="1500px" height="700px" frameborder="0" scrolling="no" style="max-width: 100%;"></iframe> |
|
</div> |
|
</body></html> |