0

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

4

3 回答 3

1

我会在市场上使用这样的模块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});

这应该给你的想法和足够的开始。尚未对此进行测试,您可能必须使用它。

于 2013-09-10T12:36:57.987 回答
1

您必须使用两个按钮和一个文本区域创建窗口,以便用户可以撰写自己的推文。我设法使用您提到的 codebird 文件来做到这一点,您所要做的就是像这样编辑 setTweet 函数:(其他一切都保持不变,这样做可以在不重新启动应用程序的情况下发送尽可能多的推文。祝你好运)

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);
                }
        );
    });
}
于 2013-09-10T20:38:08.570 回答
0

您可以在 webview 中使用 twitter 意图 url

看到这个 StackOverflow 问题

有没有办法启动 Twitter 对话框以发送直接消息?

于 2013-09-10T13:42:20.110 回答