android – WebView无法加载oAuth url

android – WebView无法加载oAuth url,第1张

概述我正在尝试 Android Twitter oAuth Connect Tutorial的代码并且它成功运行.我试图将Twitter授权页面更改为在WebView而不是Web浏览器中运行,但WebView似乎无法使用此格式加载url:// twittersample这是返回到我的应用程序的链接.成功授权后,webview应关闭并成功返回我的应用程序. 有一个错误说“oauth:// twitter 我正在尝试 Android Twitter oAuth Connect Tutorial的代码并且它成功运行.我试图将Twitter授权页面更改为在WebVIEw而不是Web浏览器中运行,但WebVIEw似乎无法使用此格式加载url:// twittersample这是返回到我的应用程序的链接.成功授权后,webvIEw应关闭并成功返回我的应用程序.

有一个错误说“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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1129150.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存