【问题标题】:Android button as WebView click link for Logout (or delete sessionId)Android按钮作为WebView点击链接注销(或删除sessionId)
【发布时间】:2015-03-27 22:20:04
【问题描述】:

在我的 WebView android 中,我希望用户在单击按钮或任何其他方式时注销。 单击该按钮后,我不想显示任何网页。在该应用程序应该自动退出之后(System.exit(0) 会这样做)

点击我要发送的是:

http://192.100.1.1:10000/app?service=direct/1/UserSummary/$UserBorder.logoutLink

最好的方法是什么?

【问题讨论】:

    标签: javascript android android-webview


    【解决方案1】:

    使用 Rest 对该 URL 进行 get 调用。

    让它使用异步任务:

    查看示例here

    在你的后台做:

    protected String doInBackground(String... urls) {
        String url = urls[0];
        HttpClient httpclient = new DefaultHttpClient(getHttpParams());
        HttpResponse response = null;
        try {
            switch (taskType) {
            HttpGet httpget = new HttpGet(url);
            response = httpclient.execute(httpget);  
        } catch (Exception e) {
            Log.e(TAG, e.getLocalizedMessage(), e);
        }
        return response;
    }
    
    private HttpParams getHttpParams() {
    
        HttpParams htpp = new BasicHttpParams();
    
        HttpConnectionParams.setConnectionTimeout(htpp, CONN_TIMEOUT);
        HttpConnectionParams.setSoTimeout(htpp, SOCKET_TIMEOUT);
    
        return htpp;
    }
    

    【讨论】:

    • 你能举个例子吗?我需要为 Rest API 导入额外的包吗?
    • 当然,我会尽快尝试。谢谢,我会报告状态。
    • @João Marcos 这里有很多错误和不推荐使用的方法。无法全部解决。
    • 在我按下 Alt+Enter 来修复导入和其他错误后,代码被删除了,并且很少有变量保持错误(红色文本)。我做了项目的重建,但它并没有消失。我正在使用 Android Studio。
    【解决方案2】:

    这个问题背后的主要原因是这个注销链接没有任何可显示的内容。所以我想要点击注销之类的东西。 Main Activity 中的简单 Android 按钮对此没有帮助。

    所以,我创建了新的blank activity,使用了与我相同的布局,但我没有显示空白布局,而是添加了ProcessDialog,并使其不可取消,如下所示:

        final ProgressDialog pd = new ProgressDialog(Logout.this);
        pd.setCancelable(false);
        pd.setCanceledOnTouchOutside(false);
        pd.setMessage("Please wait...");
        pd.show();
    

    public void onPageFinished(WebView view, String url) 方法中,我关闭了这个 ProcessDialog 并触发了我应用程序登录页面的意图。还覆盖了public boolean shouldOverrideUrlLoading(WebView view, String url) 以防止它退出应用程序。

    之后,只需webView.loadUrl(url);

    这样我解决了我的问题。 (如果你知道更好更简单的方法,请发帖。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-01
      • 1970-01-01
      • 2022-11-21
      • 2021-12-24
      • 1970-01-01
      相关资源
      最近更新 更多