这个问题的一个可能原因是在Android设备上使用了自定义UI组件。为了解决这个问题,一种方法是在使用自定义UI组件进行登录时禁用自动填充(Android上自定义UI组件在登录时会自动填充)。可以使用以下代码实现:
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class CustomWebviewClient extends WebViewClient {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
if (url.equals("")) {
// Prevent autofill on Android
view.clearFocus();
view.clearFormData();
view.clearCache(true);
view.setVisibility(View.VISIBLE);
}
}
}
然后,将新的CustomWebviewClient应用于自定义UI组件中的WebView。例如:
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;
import com.amazonaws.mobileconnectors.appsync.S3ObjectManager;
import com.amazonaws.mobileconnectors.appsync.fetcher.AppSyncResponseFetchers;
import com.amazonaws.mobileconnectors.appsync.sigv4.BasicCognitoUserPoolsAuthProvider;
import com.amazonaws.mobileconnectors.appsync.sigv4.CognitoUserPoolsAuthProvider;
import com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUserPool;
import com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUserSession;
import com.amazonaws.mobileconnectors.cognitoidentityprovider.handlers.AuthenticationHandler;
import com.amazonaws.mobileconnectors.cognitoidentityprovider.handlers.PasswordResetHandler;
import com.amazonaws.mobileconnectors.cognitoidentityprovider.handlers.SignUpHandler;
import com.amazonaws.mobileconnectors.cognitoidentityprovider.handlers.VerificationHandler;
import com.amazonaws.mobileconnectors.cognitoidentityprovider.util.UserPoolHelper;
import com.apollographql.apollo.ApolloCall;
import com.apollographql.apollo.ApolloClient;
import com.apollographql.apollo.api.Response;
import com