在单独的 WebView 上进行多次登录? (安卓)

2024-01-04

我对 Android 开发相当陌生,我有一个关于 WebViews 如何处理数据(在 Java 中)的问题。

我假设这属于“cookie”类别。但我在应用程序的不同选项卡上有两个不同的 webView。我想要一个 webView(称之为webView1) 登录网站的一个帐户,而另一个 (webView2)登录同一网站的另一个帐户。例如,我想同时登录两个 webView 中的两个单独的 Gmail 帐户。

我遇到的问题是,一旦我登录帐户webView1, webView2我也跟着做,然后将我登录到该帐户。当我登录时出现同样的问题webView2, as webView1自然也登录到该帐户。

有什么办法可以解决这个问题吗?我希望我的两个 webView 能够完全独立地运行,这就是最终的结果。

Thanks!


我绝对可以回答你的问题。我主要是一名 iOS 开发人员,我正在创建一个 Android 应用程序,其效果与 webView cookie 不共享完全相反。我在选项卡中创建了 Web 视图来模拟我在 iOS 中使用的行为,但我的 Web 视图的行为完全相互独立。我希望他们共享相同的登录信息,但就目前情况而言,我必须单独登录每个选项卡,因为它们玩得不好。

不管怎样,我的问题绝对可以帮助你,我希望你与我分享你的信息来创建我正在寻找的cookie共享效果......

这是我的 main.xml 布局:

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TabWidget
        android:id="@android:id/tabs"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <WebView
            android:id="@+id/web_engine"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:layout_gravity="bottom"
            android:layout_marginTop="-45dp" />
        <WebView
            android:id="@+id/messages"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:layout_gravity="bottom"
            android:layout_marginTop="-45dp" />
        <WebView
            android:id="@+id/myprofile"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:layout_gravity="bottom"
            android:layout_marginTop="-45dp" />
        <WebView
            android:id="@+id/rncorner"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:layout_gravity="bottom"
            android:layout_marginTop="-45dp" />
    </FrameLayout>
</LinearLayout>
</TabHost>

这是我的活动:

package com.example.tabs;


import android.app.TabActivity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.TabHost;

public class TabsActivity extends TabActivity {
WebView webView;

final String DEFAULT_URL = "http://example.com";


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.main);

    TabHost mTabHost = getTabHost();

    mTabHost.addTab(mTabHost.newTabSpec("Home").setIndicator("Home",getResources().getDrawable(R.drawable.home)).setContent(R.id.web_engine));
    mTabHost.addTab(mTabHost.newTabSpec("Messages").setIndicator("Messages",getResources().getDrawable(R.drawable.messages)).setContent(R.id.messages));
    mTabHost.addTab(mTabHost.newTabSpec("My Profile").setIndicator("My Profile", getResources().getDrawable(R.drawable.myprofile)).setContent(R.id.myprofile));
    mTabHost.addTab(mTabHost.newTabSpec("Map").setIndicator("Map", getResources().getDrawable(R.drawable.rncorner)).setContent(R.id.rncorner));

    mTabHost.setCurrentTab(0);

    //home
    webView = (WebView)findViewById(R.id.web_engine);

    webView.setWebViewClient(new MyWebViewClient());

    webView.loadUrl(DEFAULT_URL);

    //messages
    webView = (WebView)findViewById(R.id.messages);

    webView.setWebViewClient(new MyWebViewClient());

    webView.loadUrl("http://example.com/index.php2");

    //my profile
    webView = (WebView)findViewById(R.id.myprofile);

    webView.setWebViewClient(new MyWebViewClient());

    webView.loadUrl("http://example.com/index.php3");


    //rncorner
    webView = (WebView)findViewById(R.id.rncorner);

    webView.setWebViewClient(new MyWebViewClient());

    webView.loadUrl("http://example.com/index.php4");

}



public class MyWebViewClient extends WebViewClient {



    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {

        // TODO Auto-generated method stub

        view.loadUrl(url);

        return true;

    } 


}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在单独的 WebView 上进行多次登录? (安卓) 的相关文章

  • 使用java在网页中进行字符编码

    如何使用java找出网页中的字符编码类型 打开与 URL 的连接 使用URL openConnection http download oracle com javase 6 docs api java net URL html openC
  • Hazelcast:连接到远程集群

    我们有一组 Hazelcast 节点 全部运行在一个远程系统 具有许多节点的单个物理系统 上 我们希望从外部客户端连接到该集群 一个 Java 应用程序 它使用如下代码连接到 Hazelcast ClientConfig clientCon
  • 按名称获取 ArrayList

    这是正确的获取方式吗ArrayList
  • 单元测试、集成测试还是设计中的问题?

    我编写了我的第一个单元测试 我认为它过于依赖其他模块 我不确定是否是因为 这是一个复杂的测试 我实际上已经编写了集成测试或 我的设计有问题 我首先要说的是 虽然我有大约 4 年的开发经验 但我从未学过 也没有人教过自动化测试 我刚刚使用 H
  • 在 android 版本 7.0 上膨胀类 android.widget.DatePicker 时出错

    我想显示弹出日期选择器并且我使用此代码 Calendar mcurrentDate Calendar getInstance int mYear mcurrentDate get Calendar YEAR int mMonth mcurr
  • Java:java.util.Preferences 失败

    我的程序将加密的产品密钥数据保存到计算机上java util Preferences类 系统首选项 而不是用户 问题是 在 Windows 和 Linux 上 尚未在 OSX 上测试过 但可能是相同的 如果我不运行该程序sudo或者具有管理
  • Java 常量枚举[重复]

    这个问题在这里已经有答案了 可能的重复 理解 Java 中的枚举 https stackoverflow com questions 1419835 understanding enums in java 为什么我们应该使用枚举而不是 Ja
  • Java 中通用方法参数的 getClass()

    以下 Java 方法无法编译
  • 用于安装 R 软件包的备用编译器:clang:错误:不支持的选项“-fopenmp”

    我正在尝试在 OS X 10 11 6 上使用 R 版本 3 4 0 安装 rJava 包 install packages rJava type source 我收到以下错误 clang o libjri jnilib Rengine o
  • 如何在 onDraw() 方法中定义与像素无关的高度

    我扩展了 View 来构建自定义小部件 我想用独立的像素单位定义小部件的高度 我认为可以通过将像素密度乘以所需的高度来完成 但我不知道该怎么做 到目前为止我所拥有的 最小化 public class Timeline extends Vie
  • Android 4.2 - Environment.getExternalStorageDirectory().getPath() 行为

    我一直在开发一个android应用程序 在上次更新到4 2之前 我使用 Environment getExternalStorageDirectory getPath 它返回了我 storage sdcard0 但自从更新后我现在得到了 s
  • 应用程序中空指针异常[重复]

    这个问题在这里已经有答案了 我正在尝试在我的应用程序中实施应用程序内计费 我写了这段代码 public class Settings extends PreferenceFragment ServiceConnection mService
  • 从特定 JAR 文件读取资源(文件的重复路径)

    假设您有 jar1 和artifactId 动物园 jar2 和artifactId 动物 两个 jar 都有一个具有相同路径的资源文件 例如 animals animal txt 有什么方法可以从特定的 jar 中读取该文件吗 使用 ge
  • 测量 tomcat 的排队请求数

    因此 使用tomcat 您可以设置acceptCount值 默认为100 这意味着当所有工作线程都忙时 新连接被放置在队列中 直到队列满 之后它们被拒绝 我想要的是监视此队列中项目的大小 但无法确定是否有办法通过 JMX 获取此值 即不是队
  • 一个类中有多个具有相同参数类型的方法

    我知道 至少已经有了关于这个主题的一个问题 https stackoverflow com questions 5561436 can two java methods have same name with different retur
  • Application.onLowMemory() 未调用

    我创建了自己的应用程序类 我尝试调试它 代码在 Application onCreate 处停止 但不会在 onLowMemory 处停止 为了测试该场景 我打开了许多其他高内存应用程序 我看到的是调试会话终止 在 Eclipse 中 并且
  • 通过向上转换将 Java.sql.date 转换为 Java.util.date 安全吗?

    java sql date 扩展了 java util date 那么通过将 java sql date 转换为 java util date 是否可以在两者之间进行转换 或者有其他方法可以转换它们吗 您不一定需要强制转换 您可以将 SQL
  • while循环只执行一次

    我很难弄清楚为什么 while 循环实际上不会循环 它运行一次并停止 import java util public class mileskm public static void main String args Scanner inp
  • 如何让JComboBox中的内容居中显示?

    目前我有这个JComboBox 我怎样才能将其中的内容居中 String strs new String 15158133110 15158133124 15158133458 JComboBox com new JComboBox str
  • Swing:创建可拖动组件...?

    我在网上搜索了可拖动 Swing 组件的示例 但我发现示例不完整或不起作用 我需要的是一个摇摆组件那可以是dragged通过鼠标 在另一个组件内 被拖拽的时候 应该已经 改变它的位置 而不仅仅是 跳 到目的地 我很欣赏无需非标准 API 即

随机推荐