如何打开可编辑的对话框来发布推文

时间:2013-09-10 09:29:52

标签: javascript android ios twitter titanium

我想知道当我点击按钮打开带有预定义消息的对话框时,用户可以(i)编辑(文本字段)(ii)取消(按钮)和( iii)按下确定(按钮),从而发推。 我正在使用codebird模块和钛以及以下链接 https://gist.github.com/Rogichi/5905010 这使我能够发送推文,但只有设置文本,没有编辑能力,按确定或取消。此外,它只适用于您第一次在手机上运行应用程序,之后,我必须卸载并重新安装才能再次发送。 任何帮助都将非常感激

3 个答案:

答案 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?