首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从我的Android应用程序直接撰写推文?

如何从我的Android应用程序直接撰写推文?
EN

Stack Overflow用户
提问于 2020-01-02 17:25:09
回答 1查看 210关注 0票数 0

我已经在android应用程序上创建。我需要使用我自己的twitter登录凭据,从我的android应用程序直接向我的twitter帐户发布推文。我已经在twitter上注册了,并获得了消费者密钥和消费者密钥。有了这个,我希望我的应用程序应该授权我的twitter帐户,我应该能够以编程的方式发布推文,而没有任何弹出窗口。致敬库纳尔

EN

回答 1

Stack Overflow用户

发布于 2020-01-02 17:44:10

解决方案是创建一个用于推文的Custom Webview。它甚至不需要Fabric Twitter API。

1-创建Webview活动:

代码语言:javascript
运行
复制
    public class TweetCustomWebView extends AppCompatActivity {

    android.webkit.WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview_activity);

        Bundle extras = getIntent().getExtras();
        if (extras != null) {
            final String stringToShow = extras.getString("tweettext");
            webView = (android.webkit.WebView) findViewById(R.id.wv);

            webView.setWebViewClient(new WebViewClient() {
                public boolean shouldOverrideUrlLoading(android.webkit.WebView view, String url) {
                    if (url.contains("latest_status_id=")) {
                        // Twitted
                        setResult(Activity.RESULT_OK, new Intent());
                        TweetCustomWebView.this.finish();
                    }
                    view.loadUrl(url);
                    return true;
                }

                public void onPageFinished(android.webkit.WebView view, String url) {
                    // Finished loading url
                }

                public void onReceivedError(android.webkit.WebView view, int errorCode, String description, String failingUrl) {
                    Log.e("", "Error: " + description);
                    setResult(Activity.RESULT_CANCELED, new Intent());

                }
            });
            webView.loadUrl("https://twitter.com/intent/tweet?text=" + stringToShow);
        }
    }

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        setResult(Activity.RESULT_CANCELED, new Intent());
    }}

2-像这样的布局:

代码语言:javascript
运行
复制
<WebView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/wv"/>

3-在AndroidManifest.xml中,我们必须将webview的活动添加到<application>标记中:

代码语言:javascript
运行
复制
<activity android:name=".TweetCustomWebView" />

4-最后一步是当用户点击在Twitter上分享按钮时调用我们的webview:

代码语言:javascript
运行
复制
Intent intent = new Intent(MainActivity.this, TweetCustomWebView.class);
intent.putExtra("tweettext", "Text to tweet");
startActivityForResult(intent, 100);

或者您可以使用Account Activity API用于自定义推文用途。

应该就是这样。我希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59560933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档