Я не могу связать события касания и пролистывания в моем приложении, используя WebView с простым примером кода, который отлично работает в браузере. Я использую JQuery Mobile. Есть идеи?
<!DOCTYPE html>
<html>
<head>
<title>jQuery Mobile Events</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a3/jquery.mobile- 1.0a3.min.css" />
<script src="http://code.jquery.com/jquery-1.5.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.js"></script>
<script type="text/javascript">
$( function() {
$('body').bind( 'taphold', function( e ) {
alert( 'You tapped and held!' );
e.stopImmediatePropagation();
return false;
} );
$('body').bind( 'swipe', function( e ) {
alert( 'You swiped!' );
e.stopImmediatePropagation();
return false;
} );
} );
</script>
</head>
<body>
<div data-role="page" id="home">
<div data-role="header">
<h1>jQuery Mobile Events</h1>
</div>
<div data-role="content">
<p>Try:</p>
<ul>
<li>Tapping and holding</li>
<li>Swiping</li>
</ul>
</div>
</div>
</body>
</html>
Это мой код на Java:
WebView webview;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webview.loadUrl("web-page-here");
webview.addJavascriptInterface(new JavaScriptInterface(this), "Android");
webview.setWebViewClient(new WebViewClient());
}
Вот интерфейс Javascript:
import java.io.IOException;
import android.content.Context;
import android.widget.Toast;
public class JavaScriptInterface {
Context mContext;
AudioRecord audiorecord;
/** Instantiate the interface and set the context */
JavaScriptInterface(Context c) {
mContext = c;
}
/** Show a toast from the web page */
public void showToast(String toast) {
Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
}
// OnSwipe() here?
}
Так что мне, вероятно, следует добавить метод здесь, и при обнаружении пролистывания его следует вызывать в JQuery с Android.OnSwipe ()? Почему вышеуказанный код JQuery Mobile не работает для навигации? Разве WebView не должен работать как веб-браузер?