【问题标题】:How to "close" Webview when returning to my activity?返回我的活动时如何“关闭”Webview?
【发布时间】:2018-07-27 11:11:45
【问题描述】:

从我的应用程序进行身份验证后,会显示一个新窗口,稍后会重定向回该应用程序。然后在我的活动中调用 onNewIntent() 。 But when select to go back to my app, the twitter web page still shows.不应显示重定向回应用程序的 Twitter 页面。如何关闭 Twitter 网页视图?

【问题讨论】:

    标签: android oauth


    【解决方案1】:

    我的建议是在新的网络浏览器窗口中启动“authURL”。我个人更喜欢做的是启动一个包含 WebView 的新 Activity 并将 URL 传递给该 Activity。这样,您可以更轻松地在 Oauth 身份验证过程中管理应用内的导航。所以不要这样做:

    String authUrl = provider.retrieveRequestToken(consumer,CALLBACK_URL);
    mContext.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl)));
    

    我会这样做:

    Intent intent = new Intent(mContext, YourActivityWithAWebView.class);
    intent.putExtra("AUTH_URL", authUrl);
    startActivity(intent);
    

    然后,在您的 WebView 中,您可以使用 shouldOverrideUrlLoading() 方法来获取 VERIFIER URL 并检索您的 Oauth 验证器。

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      我从我的活动中调用此方法

      public void askOAuth(Context context,Handler handler) {
          _msg = new Message();
          _msg.arg1 = AUTHORISE_TWITTER_APP;
          mContext=context;
          this.handler=handler;
          consumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY,CONSUMER_SECRET);
          provider = new DefaultOAuthProvider(
              "http://twitter.com/oauth/request_token",
              "http://twitter.com/oauth/access_token",
              "http://twitter.com/oauth/authorize");//
          //provider.setOAuth10a(true);
          String authUrl = provider.retrieveRequestToken(consumer,CALLBACK_URL);
          mContext.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl)));
      }
      

      这会打开一个网页视图(重定向回我的活动的 Twitter 页面)。 在此之后它调用我的活动的onNewIntent() 函数并显示活动但是当我按下返回按钮时它再次显示 Twitter 页面。现在我的问题是如何关闭该 Twitter 页面

      【讨论】:

        【解决方案3】:

        新窗口是 Activity 吗?如果是这样,请从您的主要活动中调用 startActivityForResult() 并实现回调。

        当你的回调被触发时,你可以根据需要重新加载你的 webview。

        您还可以重组您的应用程序,使您的主要活动的onCreate() 足够智能,不会在 web 视图中显示旧结果。

        【讨论】:

          猜你喜欢
          • 2020-03-04
          • 1970-01-01
          • 1970-01-01
          • 2016-04-18
          • 2013-03-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多