想知道是否有人可以提供帮助。请参阅下面的附件代码:
如果我通过正常的“a href”启动Web Intent,然后发推文我得到了回调。可爱。
但是,如果我通过window.open启动Web Intent,比如按一下按钮,我就不会。请参阅以下代码。
我可以,捕获按钮点击,然后点击“a href”。此时,我做然后获得回调。但是,某些浏览器(例如Safari)中的此操作会被弹出窗口阻止程序捕获,因此没有人会看到弹出窗口。这有点无用。
我想使用window.open方法,并获得回调。有什么想法吗?
*代码开头 * *
<!doctype html>
<html lang="en">
<head lang=en>
<meta charset="utf-8">
<title>Web Intent t3 Experiment</title>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script src="https://platform.twitter.com/widgets.js" type="text/javascript"> </script>
</head>
<body>
<a href="https://twitter.com/intent/tweet?url=http://www.google.com&text=testing web intents">Option 1: Tweet via Link</a><br />
<button id="tf_sendtweet_button">Option 2: Tweet Via Button and JS</button>
<script type="text/javascript">
var t_element = d3.select("#tf_sendtweet_button");
t_element.on("click", function() {
_text = "Some compelling text to go in a tweet";
_url = "http://www.google.com/";
var tweet_url = 'https://twitter.com/intent/tweet?text=';
tweet_url += encodeURIComponent(_text);
tweet_url += '&url=' + encodeURIComponent(_url);
window.open(tweet_url,'_blank');
});
// Here, trap the callback from the WebIntent.
twttr.ready(function (twttr) {
// bind events here
twttr.events.bind('tweet', function (event) {
alert("Yay, tweet callback baby. Gotcha.");
console.log(new Date(), "Sweett, tweet callback: ", event);
});
});
</script>
</body>
</html>
*代码结束 * *
答案 0 :(得分:1)
好的,大家都很轻松。 Twitter员工已经回答了这个问题:
不幸的是,如果不让我们的javascript控制窗口打开,你就无法使用回调事件功能。
https://twittercommunity.com/t/get-web-intent-callback-from-a-window-open-call/20881