我想知道当我点击按钮打开带有预定义消息的对话框时,用户可以(i)编辑(文本字段)(ii)取消(按钮)和( iii)按下确定(按钮),从而发推。 我正在使用codebird模块和钛以及以下链接 https://gist.github.com/Rogichi/5905010 这使我能够发送推文,但只有设置文本,没有编辑能力,按确定或取消。此外,它只适用于您第一次在手机上运行应用程序,之后,我必须卸载并重新安装才能再次发送。 任何帮助都将非常感激
答案 0 :(得分:1)
我只想使用module like this one on the marketplace或此代码Dawson Toth.
你必须让实际的窗口发送推文并编辑消息,这应该让你开始:
// Set up twitter first
var social = require('social');
var twitter = social.create({
site : 'Twitter',
consumerKey : '*****',
consumerSecret : '*****' // <--- and this with your own keys!
});
// Now create your popup window
var win = Ti.UI.createWindow({layout : 'vertical'});
var tweettext = Ti.UI. createTextField({
hintText : 'Enter what you want to tweet...',
borderStyle: Ti.UI.INPUT_BORDERSTYLE_ROUNDED,
color: '#336699',
height: 60
});
var send = Ti.UI.createButton({title : 'Send', height : 45});
send.addEventListener('click', function(e) {
// Send the tweet with the text fields value
twitter.share({
message : tweettext.value,
success : function() {
alert('Tweeted!');
},
error : function(error) {
alert('You have already shared this school on Twitter.');
}
});
});
// Cancel button closes the window
var cancel = Ti.UI.createButton({title : 'Cancel', height : 45});
cancel.addEventListener('click', function(e) { win.close(); });
// Add all controls and open the window as a modal
win.add(tweettext);
win.add(send);
win.add(cancel);
win.open({modal: true});
这应该给你一个想法,足以开始。没有对此进行测试,您可能需要使用它。
答案 1 :(得分:1)
您必须使用两个按钮和一个textarea创建窗口,以便用户可以撰写自己的推文。我设法使用你提到的codebird文件来做到这一点,所有你要做的就是编辑setTweet函数,如下所示:(其他一切都保持不变,这样就可以发送尽可能多的推文而无需重启应用程序。祝你好运)< / p>
function setTweet(){
var post = Ti.UI.createButton({
title : 'Send',
right: 10,
width: 80,
height: 30,
top: 10
});
var content = Ti.UI.createTextArea({
color: '#888',
font: {fontSize:20, fontWeight:'bold'},
textAlign: 'left',
value: 'compose a tweet',
top: 60,
width: 280, height : 140
});
var floatW = Ti.UI.createWindow({
backgroundColor:'#fff',
borderWidth:8,
borderColor:'#999',
height:200,width:300,
borderRadius:10
});
floatW.add(post);
floatW.add(content);
floatW.open();
post.addEventListener('click', function(e){
var tweet = content.getValue();
cb.__call(
"statuses_update",
{"status": tweet },
function (reply) {
Ti.API.info("Respuesta al publicar: ");// ...
Ti.API.info(reply);// ...
///////////INSPECT OBJECT
function inspeccionar(obj){
var msg = '';
for (var property in obj){
if (typeof obj[property] == 'function')
{
var inicio = obj[property].toString().indexOf('function');
var fin = obj[property].toString().indexOf(')')+1;
var propertyValue=obj[property].toString().substring(inicio,fin);
msg +=(typeof obj[property])+' '+property+' : '+propertyValue+' ;\n';
}
else if (typeof obj[property] == 'unknown')
{
msg += 'unknown '+property+' : unknown ;\n';
}
else
{
msg +=(typeof obj[property])+' '+property+' : '+obj[property]+' ;\n';
}
}
return msg;
}
//Ti.API.info(inspeccionar(reply));
//Ti.API.info(inspeccionar(reply.errors[0]));
//Ti.API.info(reply.httpstatus);
if(reply.httpstatus == 200)
floatW.close();
else
alert(reply.errors);
}
);
});
}
答案 2 :(得分:0)
您可以在网页浏览中使用Twitter意向网址
请参阅此StackOverflow问题
Is there a way to launch a Twitter dialog for sending direct messages?