【问题标题】:Android: webview安卓:网络视图
【发布时间】:2015-10-28 19:03:19
【问题描述】:

我正在尝试使用 shouldOverrideUrlLoading 将 web 应用程序(例如 www.xyz.com)包装在 web 视图中。我有两个启动应用程序的活动,它检查所有正在运行的活动并确定是否启动新实例以及将我的应用程序 www.xyz.com 包装在 web 视图中的其他活动。

我面临两个问题:

  1. 当我按下睡眠按钮然后再次按下它以打开设备时,或者当应用程序空闲并进入睡眠状态并按下按钮以打开设备时,应用程序重新启动(webview 重新启动) .

  2. 此外,当打开其他网站的 Web 应用程序中的链接(例如 www.abc.com)不能正常工作时,它会首次工作并根据需要在外部浏览器中打开该网站,但进一步点击尝试在不需要的 web 视图中打开站点。

我用谷歌搜索了这个并找到了如下代码的建议:

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
  if (url.contains("abc")) {
    Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
    startActivity(i);
    return true;
  } else {
    view.loadUrl(url);
    return false;
  }
}

但是,在我的情况下,网站 www.abc.com 第一次在外部浏览器中打开,但第二次在 webview 中打开,我在 eclipse 中对其进行了调试,发现 url 值相同在随后的点击中。

【问题讨论】:

  • 任何有类似问题的人,都被这个问题困扰

标签: android webview


【解决方案1】:

1) 对于WebView重启问题,需要在包含WebView的activity中添加如下几行代码

android:launchMode="singleInstance"
android:alwaysRetainTaskState="true"

另请参阅有关如何在 Bundle 中保存 WebView 状态的教程。

2) 对于您的外部浏览器问题,请尝试

url.equals("www.abc.com")

而不是

url.contains("abc")

希望能解决你的问题:)

【讨论】:

    猜你喜欢
    • 2011-05-05
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多