我有一个奇怪的问题与android的webview。我将一个页面加载到其中包含链接的webview。我已将webview设置为在同一个webview中(而不是在浏览器上)打开该链接。当下一页打开时,它会向mysql写入一些内容。如果用户已经在同一天打开第二页,用户将被重定向到第一页,并且没有东西被写入到mysql中。我注意到,在第一种情况下,在3-4次中的1次中,链接将这些东西写入mysql两次(具有相同的时间戳),并将用户立即重定向到第一页。所以看起来,当链接被点击时,URL连续打开两次。一切工作正如我的电脑的浏览器(safari,firefox和chrome)。我发现一些文章说图像上的空src字段可能会导致这种情况,但是我的php/html代码中没有空的src字段。android webview中的链接打开两次
Webview是这样设置:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_description);
WebViewClient yourWebClient = new WebViewClient()
{
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
webView.loadUrl("file:///android_asset/404.html");
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if (url.contains("google") == false) {
webView.loadUrl(url);
return false;
}
else {
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(i);
return true;
}
}
};
webView = (WebView) findViewById(R.id.description);
webView.getSettings().setJavaScriptEnabled(true);
if (Build.VERSION.SDK_INT >= 11){
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
String url = (MainActivity.URL+"app/description.php?tagid="+tagId+"&screenwidth="+viewPortWidth+"&screenheight="+viewPortHeight+"&deviceid="+MainActivity.myDeviceId+"&lang="+MainActivity.myLanguage+"&os=android);
webView.setWebViewClient(yourWebClient);
webView.loadUrl(url);
}
我的链接只是一个锚标记内一个典型的DIV(用PHP编写):
echo '<a href="description.php?type='.$type.'&screenwidth='.$screenWidth.'&screenheight='.$screenHeight.'&tagid='.$tagid.'&no=1&deviceid='.$deviceid.'&lang='.$language.'">
<div class="redbutton">'.$lang['NO'].'</div></a>';
经过测试,它似乎工作。谢谢您的回复! – Juuso 2014-10-10 21:09:18
如果这是正确的。您可以将其标记为正确的答案,以帮助未来遇到同样问题的程序员。 – Darpan 2014-10-11 09:04:54