如何在加载 webview 后在 android 中启动另一个 activity?

How to start an another activity in android after webview has been loaded?

正在使用 Webview 正在加载网页 url 在 android.Basically 正在加载网页视图 android.Basically 正在加载登录页面 web url。该页面允许用户使用 openid 登录,例如 Facebook 和Google.

我的场景是在用户登录后我需要启动另一个 activity.So far 在 web 视图中我加载了登录页面 web url。但现在我需要调用另一个activity webview 加载后。所以请帮助我,我怎样才能做到这一点?提前致谢。

覆盖 WebViewClient 的 onPageFinished

 private class WebActivity extends WebViewClient {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
    view.loadUrl(url);
    return true;
 }


  @Override
  public void onPageFinished(WebView view, String url) {
   super.onPageFinished(view, url);
    //Call another activity
    }
 }

覆盖 onPageFinished() 并检查您是否在正确的页面上(登录后),否则您的 activity 也会在加载登录页面时打开。

webView.setWebViewClient(new WebViewClient(){
    @Override
    public void onPageFinished(WebView view, String url) {
        if(url.equals("url after sucessfull login")){
            Intent intent = new Intent(getApplicationContext(), YourActivity.class);
            startActivity(intent);
        }
    }
});

我不确定您想要的确切体验,但一种可能是您在页面上有一个 link 映射到您应用程序的一个 intent 过滤器 - 单击此 link(或将用户重定向到它)将启动您的意图。您应该可能为这样的 link 使用自定义方案。

Android Respond To URL in Intent 显示了如何执行此操作的示例。您可能必须计算出单击此 link 时 UI 会发生什么的一些细节 - 至少您需要向用户提供一些反馈。或者对于重定向,您几乎肯定需要绘制一些 UI - chrome 习惯于转到空白页面以进行重定向以启动应用程序,因此如果您不呈现任何 UI 按照您的意图(并通过重定向或 window.location 启动它)您的用户最终可能会盯着空白屏幕。