我尝试包括相关位。我是这方面的新手,并且正在使用现有代码。我希望有人能指出我正确的方向。
基本上,假设我的网站是 www.mywebsite.com(我们称之为“A”,因为我只能发布两个超链接)并且您决定进行搜索,所以现在 URL 如下所示:
www.mywebsite.com/?s=notes(称之为“B”)
然后,您将获得带有搜索结果的 SearchPage 活动。现在假设我点击搜索结果中的链接。例子:
上面的网址/category/easy-news/(称之为'C')
网站“C”应该在 PageActivity 中加载(它确实如此),但仍会在最初显示“B”的 SearchPageActivity 中加载。
最重要的是,似乎还有第三个 PageActivity(尽管它看起来不像第三次打开)。一个也再次加载“C”的。如前所述,它仍然是 PageActivity。按返回关闭 PageActivity 并显示另一个带有 URL 'C' 的 PageAccticity。
关闭第二次将我带回 SearchPageActivity,使用相同的 URL“C”,最初是“B”。再按一次让我回到同一活动中的“B”。
MainActivity 似乎没有这个问题,只是在 SearchPage 活动中。在 MainActivity 中,一切正常。下面的代码来自 SearchPage 活动。
对不起,冗长的消息。我希望有人能帮帮忙。谢谢。
谢谢。
private boolean isAppOrGamePage(String paramString) {
if ((paramString == null)
|| paramString.length() < 24
|| (!paramString.substring(0, 24).equals(
"http://www.mywebsite.com")))
return false;
String str1 = paramString.substring(24);
String str2 = str1.substring(0, 1 + str1.indexOf('/', 2));
if ((!mAppIdentifiers.contains(str2))
&& (!mGameIdentifiers.contains(str2)))
return false;
return true;
}
public boolean shouldOverrideUrlLoading(WebView paramWebView,
String paramString) {
if (MainActivity.DEBUG)
Log.e("shouldOverride", paramString);
if (Uri.parse(paramString).getHost() != null
&& (!Uri.parse(paramString).getHost()
.equals("myspace.com"))
&& (!paramString.contains("facebook.com"))
&& (!Uri.parse(paramString).getHost()
.contains("twitter.com"))
&& (!Uri.parse(paramString).getHost()
.equals("goo.gl"))
&& (!Uri.parse(paramString).getHost().contains("bit.ly"))
&& (!Uri.parse(paramString).getHost()
.contains("plus.google.com"))
&& (!Uri.parse(paramString).getHost()
.contains("youtube.com")))
if (isAppOrGamePage(paramString)) {
final Intent intent = new Intent(SearchActivity.this,
PageActivity.class);
intent.putExtra("app_url", paramString);
startActivity(intent);
} else
return false;
return false;
}
}