Запустите приложение Twitter из моего приложения, чтобы открыть определенную учетную запись Twitter - PullRequest
0 голосов
/ 21 сентября 2011

Я искал это сегодня Откройте приложение Twitter из другого приложения и загрузите некоторую страницу код из этого поста

try{
            Intent intent = new Intent(Intent.ACTION_SEND);
            intent.putExtra(Intent.EXTRA_TEXT, "this is a tweet");
            intent.setType("text/plain");
            final PackageManager pm = getPackageManager();
            final List<?> activityList = pm.queryIntentActivities(intent, 0);
            int len =  activityList.size();
            for (int i = 0; i < len; i++) {
                final ResolveInfo app = (ResolveInfo) activityList.get(i);
                if ("com.twitter.android.PostActivity".equals(app.activityInfo.name)) {
                    final ActivityInfo activity=app.activityInfo;
                    final ComponentName name=new ComponentName(activity.applicationInfo.packageName, activity.name);
                    intent.addCategory(Intent.CATEGORY_LAUNCHER);
                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
                    intent.setComponent(name);
                    startActivity(intent);
                    break;
                }
            }
      }
        catch(final ActivityNotFoundException e) {
            Log.i("twitter", "no twitter native",e );
        }

и он отлично работает.

Мой вопрос: могу ли я вставить что-то в этот код, чтобы открыть определенную учетную запись Twitter, например, чтобы открыть учетную запись Twitter с моего веб-сайта.

Спасибо

ОБНОВЛЕНИЕ

myWebView = (WebView) findViewById(R.id.webview); // Create an instance of WebView and set it to the layout component created with id webview in main.xml
        myWebView.getSettings().setJavaScriptEnabled(true);
        myWebView.loadUrl("https://mobile.twitter.com/XXXXXXXXXXXX"); // Specify the URL to load when the application starts
        //myWebView.loadUrl("file://sdcard/"); // Specify a local file to load when the application starts. Will only load file types WebView supports
        myWebView.setWebViewClient(new WebViewKeep());
        myWebView.setInitialScale(1); // Set the initial zoom scale
        myWebView.getSettings().setBuiltInZoomControls(true); // Initialize zoom controls for your WebView component
        myWebView.getSettings().setUseWideViewPort(true); // Initializes double-tap zoom control
        myWebView.getSettings().setUserAgentString("blablabla");

1 Ответ

0 голосов
/ 21 сентября 2011

То есть вы хотите открыть поток Twitter конкретного пользователя в официальном мобильном приложении Twitter?

Это, вероятно, возможно, но требует некоторого реверс-инжиниринга, поскольку в мобильном приложении не определены официальные точки интеграции:

  • Загрузите APK официального приложения для Twitter на свой ПК.Например, вы можете использовать инструмент резервного копирования приложения в файловом менеджере ASTRO , чтобы упаковать приложение в .apk, а затем скопировать APK с SD-карты на ПК
  • Декодировать файл APK с помощью apktool
  • Глядя на декодированный файл AndroidManifest.xml, вы поймете, какое действие вы хотите запустить
  • Глядя на файлы .smali, вы узнаете, какие умышленные дополнительные аргументы используются для передачи имени учетной записик активности

Подобное можно сделать и для других клиентов Twitter, таких как Seesmic, TweetDeck и т. д. Но этот подход хакерский и хрупкий!

  • Он основан на официальном приложении Twitter, являющемсяустановлен на устройстве
  • Внутренняя работа официального приложения может и будет меняться в зависимости от версии, и изменения повредят ваш код

Вот две альтернативы:

  • Направляйте пользователей на мобильный сайт твиттера, просто откройте мобильный браузер, скажем, "http://mobile.twitter.com/cocacola"
  • Если вы хотите хорошо контролировать внешний вид потока твитов, загрузите твиты в J"Формат SON из вашей деятельности, и отображать их самостоятельноТаким образом, вы получаете полный контроль над тем, как они выглядят, но вы не получаете функции «ответить», «ретвит» и т. Д. Бесплатно в каждом твите, как при использовании мобильного веб-сайта
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...