안드로이드에서 asynctask로 웹보기를 보여주고 싶습니다. 내 트위터 응용 프로그램을 인증하려고합니다. 그러나 로그인 버튼을 클릭하면 브라우저로 리디렉션됩니다. 그래서, 내 활동에 대한 웹뷰를 보여주고 싶습니다. 다음 코드는 있지만 응용 프로그램이 손상됩니다. 그래서 어떻게 할 수 있습니까? 트위터 계정으로 로그인에 대한android의 asynctask에서 webview를 표시하는 방법은 무엇입니까?
내 코드 -
private class TwitterLoginTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
// Check if already logged in
if (!isTwitterLoggedInAlready()) {
ConfigurationBuilder builder = new ConfigurationBuilder();
builder.setOAuthConsumerKey(TWITTER_CONSUMER_KEY);
builder.setOAuthConsumerSecret(TWITTER_CONSUMER_SECRET);
Configuration configuration = builder.build();
TwitterFactory factory = new TwitterFactory(configuration);
twitter = factory.getInstance();
try {
requestToken = twitter.getOAuthRequestToken(TWITTER_CALLBACK_URL);
wv.loadUrl(requestToken.getAuthorizationURL());
setContentView(wv);
setContentView(R.layout.activity_main);
wv.setWebViewClient(new WebViewClient());
wv.loadUrl(requestToken.getAuthenticationURL());
wv.getSettings().setJavaScriptEnabled(true);
//redirects to browser
//MainActivity.this.startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse(requestToken.getAuthenticationURL())));
} catch (TwitterException e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPostExecute(Void result) {
if (isTwitterLoggedInAlready()) {
// User already logged into twitter
Toast.makeText(MainActivity.this, "Already Logged into Twitter", Toast.LENGTH_LONG).show();
}
}
}
doInBackground()에서'setContentView (wv);'를 보지 못하셨습니까? 무엇보다 먼저 그것이 문제입니다. –
맞습니다. – overbet13
wv.setWebViewClient (새 WebViewClient());를 설정했습니다. wv.loadUrl (requestToken.getAuthenticationURL()); wv.getSettings(). setJavaScriptEnabled (true); setContentView (wv); postExecute에서 제거하고 setContentView (R.layout.activity_main)를 제거했습니다. 지금은 잘 작동합니다. 하지만 webview에서 "응용 프로그램 권한 부여"버튼을 클릭하면 "token null은 응용 프로그램이 아닙니다"라는 오류 메시지가 나타납니다. 그게 무슨 뜻입니까? – user3851588