Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Discord OAuth2通过Android Webview登录失败_Android_Oauth 2.0_Android Webview_Discord - Fatal编程技术网

Discord OAuth2通过Android Webview登录失败

Discord OAuth2通过Android Webview登录失败,android,oauth-2.0,android-webview,discord,Android,Oauth 2.0,Android Webview,Discord,我正在使用discord让用户登录我的android应用程序。 代码如下: MainActivity.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" androi

我正在使用discord让用户登录我的android应用程序。 代码如下:

MainActivity.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
<FrameLayout
        android:id="@+id/webview_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MyActivity">
    <WebView
            android:id="@+id/authWebView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:visibility="invisible"
            app:layout_anchorGravity="center" />
</FrameLayout>
当执行上述操作时,您将获得一个登录页面,但当您尝试登录时,加载动画将出现片刻,您将返回登录页面,甚至不会成功或失败

搜索之后,我怀疑问题与多个窗口以及如何处理它们有关,但我不能确定


最终目标是通过WebView使用oauth2登录到discord,并在类中获得用户的用户名

实现
AuthCallback
接口&您将在回调方法中得到响应

请详细说明。你是说。我如何使用它。我甚至可以在android中使用javax吗。。。。。请你举个例子……请详细说明
package com.example.oauth2test;

import android.app.Activity;
import android.view.View;
import android.webkit.CookieManager;
import android.webkit.WebView;
import android.webkit.WebViewClient;

class DiscordOAuth {
    private static final String LOG_TAG = "Discord OAuth 2 Login";


    public void getAuthentication(Activity activity) {

        String authURL = "https://discordapp.com/login";

        WebView authWebView = activity.findViewById(R.id.authWebView);
        authWebView.getSettings().setJavaScriptEnabled(true); // enable javascript
        authWebView.getSettings().setAppCacheEnabled(true);
        authWebView.getSettings().setLoadWithOverviewMode(true);
        authWebView.getSettings().setUseWideViewPort(true);
        authWebView.getSettings().setBuiltInZoomControls(true);
        authWebView.getSettings().setSupportMultipleWindows(true);
        authWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        CookieManager cookieManager = CookieManager.getInstance();
        cookieManager.setAcceptCookie(true);
        authWebView.setWebViewClient(new WebViewClient());

        authWebView.loadUrl(authURL);
        authWebView.setVisibility(View.VISIBLE);
    }
}