Я создаю простую игру только для веб-браузеров, использующих Cocos Creator, и мне нужно внедрить кнопку «Поделиться в твитер». Но мне нужно сделать это в простом JavaScript. Пока у меня есть этот код.
cc.Class({
extends: cc.Component,
properties: {
tweet: cc.Button
},
start() {
const el = document.createElement('a');
el.classList.add('twitter-share-button');
el.href = 'https://twitter.com/intent/tweet?url=http://test.com;via=stack';
el.id = 'twiiterBtn';
// After appending to body, element exists.
document.body.appendChild(el);
window.twttr = (function(d, s, id) {
var js,
fjs = d.getElementsByTagName(s)[0],
t = window.twttr || {};
if (d.getElementById(id)) return t;
js = d.createElement(s);
js.id = id;
js.src = 'https://platform.twitter.com/widgets.js';
fjs.parentNode.insertBefore(js, fjs);
t._e = [];
t.ready = function(f) {
t._e.push(f);
};
return t;
})(document, 'script', 'twitter-wjs');
window.twttr.ready(function(twttr) {
twttr.events.bind('tweet', function(event) {
console.log('tweet callback', event);
});
});
this.tweet.node.on('click', this.dispatch);
},
dispatch() {
// Everytime I click the button, this function gets called correctly
// but the element doesn't exist anymore, Cocos creator removed it.
console.log(document.getElementById('twiiterBtn'))
}
});
На start()
я создаю элемент и добавляю класс, необходимый для кнопки твитера, window.twttr работает нормально, функция ready выполняется, но создатель Cocosудаляя мой элемент и поскольку элемент больше не существует, функция обратного вызова не работает. Если кто-нибудь сталкивался с подобной ситуацией и знает, как я могу решить эту проблему.
Мне нужно реализовать твит btn и получить обратный вызов.
Спасибо