2011-09-29 32 views
0

我正在尝试使用shouldOverrideUrlLoading在webview中打包www.xyz.com。我有两个启动应用程序的活动,它检查所有正在运行的活动,并确定是否启动新实例以及其他活动,这些活动将我的应用程序www.xyz.com包装在webview中。Android:webview

我面临两个问题:

  1. 当我按下睡眠按钮,然后再按一下打开设备时,或者当应用程序空闲睡觉去了,我按按钮打开设备,应用程序重新启动(webview重新启动)。

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

我用Google搜索,发现这个类似下面的代码建议:

@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值在后续cliks中是相同的。

+0

任何一个有类似的问题,坚持这个问题 – user969199

回答

0

1)对于重启的WebView问题,你需要下面的代码行添加到您的活动包含的WebView

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

也看到有关如何保存在捆绑的WebView的状态教程。

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

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

,而不是

url.contains("abc") 

。希望解决您的问题:)

相关问题