Difficult to test without a project to fork. Try this. Same concept, do the replacement of the strings before adding the div to the page
ui3.prototype.initialize = function () {
// create STYLE element
var style = document.createElement('style');
// append to head
document.head.appendChild(style);
style.innerHTML = this.css.resource || '';
// Create the DIV
this.div = document.createElement('div');
this.div.classList.add('container');
this.div.innerHTML = this.html.resource || '';
this.div.innerHTML = this.div.innerHTML.replace('{bt1-image}', this.app.assets.find('bt1.jpg').getFileUrl());
this.div.innerHTML = this.div.innerHTML.replace('{bt2-image}', this.app.assets.find('bt2.jpg').getFileUrl());
this.div.innerHTML = this.div.innerHTML.replace('{bt3-image}', this.app.assets.find('bt3.jpg').getFileUrl());
// Add to the page
document.body.appendChild(this.div);