【问题标题】:Twitter4j Call back issue - opening callback activity in browserTwitter4j 回调问题 - 在浏览器中打开回调活动
【发布时间】:2014-07-26 00:23:33
【问题描述】:

我正在使用 twitter4j 库在我的应用程序中集成 twitter 发帖。我关注this。但我在回电时遇到问题。授权后它实际上并没有进入我们的应用程序,但实际上它打开了我们在浏览器中指定的回调活动。我不确定为什么会这样。

我尝试搜索,但找不到与此相关的任何内容。所以可能是人们没有注意到,或者我在整合它时错过了一些东西。

无论哪种方式,请帮助我解决此问题。

【问题讨论】:

  • 我正在关注这个 -- 这里没有链接。您使用的是WebView 吗?您是否使用shouldOverrideUrlLoading() 设置了WebViewClient,以便由WebView 本身(即view.loadUrl(url))处理重定向?
  • @matiash 已添加链接,请再次查看。不,我没有使用 WebView。

标签: android twitter twitter4j android-twitter


【解决方案1】:

它在浏览器内部打开自定义 URL 链接,因为您尚未定义应由哪个活动处理自定义链接,或者您尚未定义正确的类别。这是一个示例。确保包括类别。 android.intent.category.BROWSABLE 将确保浏览器打开您的应用程序。

    private final String CALLBACKURL = "x-oauthflow-twitter://privlyT4JCallback";

    <activity
        android:name=".TwitterLinkGrabberService"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:launchMode="singleInstance" >
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data
                android:host="privlyT4JCallback"
                android:scheme="x-oauthflow-twitter" />
        </intent-filter>
    </activity>

【讨论】:

    【解决方案2】:

    您已经安装了具有相同回调的应用程序,您必须更改清单中的回调字符串和 从活动回调常量。尝试使用唯一的回调地址。

    <data android:scheme="login-twitter" android:host="callback1" />
    

     static final String TWITTER_CALLBACK_URL = "login-twitter://callback1";
    

    【讨论】:

    • 我正在这样做。问题是它在浏览器本身中打开了这个活动。
    • 如果 twitter 应用程序未安装活动将向浏览器发送意图,因为它在意图过滤器中被提及。
    • 使用 android:launchMode="singleInstance" 并通过这种方式在代码中处理 @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); uri uri = getIntent().getData(); if (uri != null && uri.toString().startsWith(CALLBACK_URL)) { 字符串验证器 = uri.getQueryParameter(IEXTRA_OAUTH_VERIFIER);新的 RetrieveAccessTokenTask().execute(verifier); } }
    • 由于其他一些原因,我无法为此活动提供单实例。
    • 创建一个没有 GUI 的新 A 活动并从当前活动的结果开始活动。创建一个单一实例并获取所需数据并设置结果。现在您可以接收当前活动的数据。可能会很长,但可以解决您的问题问题。用户不觉得做了什么。抱歉英语不好
    猜你喜欢
    • 2015-03-03
    • 2014-07-23
    • 2019-02-01
    • 1970-01-01
    • 2018-11-05
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    相关资源
    最近更新 更多