我有一個奇怪的問題與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