解決策は、ツイートするためのカスタムWebviewを作成することでした。 Fabric Twitter APIは必要ありません。
最も重要な部分は、WebViewのアクティビティを作成することです:
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());
}
}
そして、このようなレイアウト:私たちがしなければならないのAndroidManifest.xmlで
<WebView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/wv"/>
の中にウェブビューのアクティビティを追加するタグ:
<activity android:name=".TweetCustomWebView" />
最後のステップは、ユーザーがTwitterのボタンにシェアをタップしたときに、私たちvebviewを呼び出すことです:
Intent intent = new Intent(MainActivity.this, TweetCustomWebView.class);
intent.putExtra("tweettext", "Text to tweet");
startActivityForResult(intent, 100);
それれるべきであること。これが誰かを助けることを願っています。
「mediaId」とは何ですか? 'statusesService.update'の' new Callback() 'パラメータがエラーを返します。 'update'メソッドはこの最後のパラメータを受け入れないようです。 –
cakan
イメージを投稿する必要がある場合はmediaid otherwizeを使用してください –
私はnullにしましたが、 'mediaId'の後に' new Callback() 'パラメータがエラーを投げています。 –
cakan