有一个错误说“oauth:// twittersample?oauth_token = ….的网页可能暂时关闭,或者它可能已永久移动到新的网址”.我该怎么办?
这是我的onCreate中的WebVIEw的片段
WebVIEw myWebVIEw = (WebVIEw)findVIEwByID(R.ID.myWebVIEw); myWebVIEw.setWebVIEwClIEnt(new WebVIEwClIEnt() { @OverrIDe public boolean shouldOverrIDeUrlLoading(WebVIEw webVIEw,String url) { if (url != null && url.startsWith("oauth://twittersample")) //handleTwitterCallback(url); { System.out.println("TWEET TWEET TWEET"); webVIEw.loadUrl(url); return true; } else return false; } });
这是我的Twitter java类TWITTER CONNECT CLASS的链接
这是我的表现
<activity androID:name="com.test.settings.Sharesettings" androID:label="Sharesettings" androID:screenorIEntation="portrait" androID:configChanges="orIEntation|keyboardHIDden"> <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:scheme="oauth" androID:host="twittersample"/> </intent-filter> </activity>
附件是在浏览器中成功运行时的logcat
解决方法 我终于开始工作了.我认为之前它没有用,因为我没有将访问令牌检索到WebVIEw中.在onCreate下的我的WebVIEw中,我做到了这一点
myWebVIEw = (WebVIEw)findVIEwByID(R.ID.myWebVIEw); myWebVIEw.setWebVIEwClIEnt(new WebVIEwClIEnt() { @OverrIDe public boolean shouldOverrIDeUrlLoading(WebVIEw webVIEw,String url) { if (url != null && url.startsWith(TWITTER_CALLBACK_URL)) { System.out.println("TWEET TWEET TWEET"); retrIEveAccesstoken(url); //added this webVIEw.setVisibility(VIEw.GONE); //added this return true; } else return false; } });
在我的retrIEveAccesstoken(url)中我有这个.
private voID retrIEveAccesstoken(final String url){ Uri uri = Uri.parse(url); String verifIEr = uri.getqueryParameter(URL_TWITTER_OAUTH_VERIFIER); try { // Get the access token Accesstoken accesstoken = twitter.getoAuthAccesstoken(requestToken,verifIEr); // Shared Preferences Editor e = mSharedPreferences.edit(); // After getting access token,access token secret // store them in application preferences e.putString(PREF_KEY_OAUTH_TOKEN,accesstoken.getToken()); e.putString(PREF_KEY_OAUTH_SECRET,accesstoken.getTokenSecret()); // Store login status - true e.putBoolean(PREF_KEY_TWITTER_LOGIN,true); e.commit(); // save changes Log.e("Twitter OAuth Token","> " + accesstoken.getToken()); TextVIEw twitterConnect = (TextVIEw) findVIEwByID(R.ID.twitterConnect); String disconnect = "disconnect"; twitterConnect.setText(disconnect); // Getting user details from twitter // For Now i am getting his name only long userID = accesstoken.getUserID(); User user = twitter.showUser(userID); String username = user.getname(); txtUpdate.setVisibility(VIEw.VISIBLE); btnUpdateStatus.setVisibility(VIEw.VISIBLE); // displaying in xml ui //twitterUser.setText(HTML.fromHTML("<b>Welcome " + username + "</b>")); TextVIEw twitterUser = (TextVIEw) findVIEwByID(R.ID.twitterDesc); twitterUser.setText(HTML.fromHTML(username)); Toast.makeText(getApplicationContext(),"LOGGED IN AS " + username,Toast.LENGTH_LONG).show(); } catch (Exception e) { // Check log for login errors Log.e("Twitter Login Error","> " + e.getMessage()); }}
我让这个工作正是我想要的,并成功登录.
如果我在这里做错了什么,请纠正我.
谢谢@ user1690588和@nikolay Elenkov,您的时间帮助我. 总结
以上是内存溢出为你收集整理的android – WebView无法加载oAuth url全部内容,希望文章能够帮你解决android – WebView无法加载oAuth url所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)