» »

[Android] webview - eventHandlers

[Android] webview - eventHandlers

icurk ::

Pozdravljeni,

z webview prikazujem dokument, ki je zgrajen iz več html datotek. Če kliknem na webview, se nam zgoraj pokaže nekakšne menijska vrstica ter spodaj seekbar za hitrejši prehod po dokumentu. Dodan je tudi poteg, s katerim listamo skozi dokument kot skozi knjigo (torej posamezna html datoteka je kot stran v knjigi).
Recimo da imam na eni "strani" povezavo spletno stran. Po kliku nanjo mi jo seveda naloži, ampak mi tudi pokaže menijsko vrstico + seekbar.

In vprašanje: Kako lahko ugotovim, kdaj je uporabnik, znotraj webview kliknil na povezavo, obrazec, video itd.? Saj je moja želja, da takrat ne pokažem menijske vrstice in seekbara.

Še koda pri onTouchListener na webview:
public boolean onTouch(View v, MotionEvent event) {
		switch (event.getAction()) {
			case MotionEvent.ACTION_DOWN:
				x = event.getX();
				helper.setOnTouch(System.currentTimeMillis());
				break;
			case MotionEvent.ACTION_UP:
				dx = event.getX();
				helper.setOnReise(System.currentTimeMillis());

				// Če je bil onClick skrijemo/pokažemo menijsko vrtico in seekbar
				if (dx == x) {
					if (rl.getVisibility() == View.VISIBLE) {
						rl.setVisibility(View.INVISIBLE);
						rlSeekBar.setVisibility(View.INVISIBLE);
						rlSeekBarPreview.setVisibility(View.INVISIBLE);
						return false;
					} else {
						rl.setVisibility(View.VISIBLE);
						rlSeekBar.setVisibility(View.VISIBLE);
						rlSeekBarPreview.setVisibility(View.VISIBLE);
						return false;
					}

				} else if (helper.isSwipe()) {
					premik(x, dx);
				}

				break;

			default:
				break;
			}

		return false;
	}

nightrage ::

JSInterface

public class JSInterface {

		private WebView mAppView;
		
		public JSInterface(WebView appView) {
			this.mAppView = appView;
		}

		public void doTest(String text) {
			Toast toast = Toast.makeText(mAppView.getContext(), String.format("Trenutna vrednost: %s db", text), Toast.LENGTH_SHORT);
			toast.setGravity(Gravity.CENTER | Gravity.CENTER, 0, 0);
			toast.show();
		}

		
		
	}


WebView

webview = (WebView) findViewById(R.id.webview_new);
		webview.setBackgroundColor(0x00000000);

		WebSettings webSettings = webview.getSettings();
		webSettings.setSavePassword(false);
		webSettings.setSaveFormData(false);
		webSettings.setJavaScriptEnabled(true);
		webSettings.setSupportZoom(false);

		jsInterface = new JSInterface(webview);
		
		webview.setWebChromeClient(new MyWebChromeClient());
		<strong>webview.addJavascriptInterface(jsInterface, "JSInterface");</strong>
		webview.loadUrl("file:///index.html");


html page

<!DOCTYPE html>
<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
	<meta charset="utf-8">

	
</head>
	<body onload="init()">
    <table id="fullheight" width="100%">        
        <tr>
            <td align="center" valign="middle" onClick="test(current)">            	                
	            tmp            
            </td>
        </tr>       
    </table>
	<script>
   
   
    function test(text) {
    	<strong>window.JSInterface.doTest(text);    	</strong>
    }

</script>
</body></html>

Zgodovina sprememb…



Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Google zaradi hrošča zaustavil nadgradnjo Chroma

Oddelek: Novice / Android
64475 (3159) proto
»

javaScrpit ura

Oddelek: Programiranje
81866 (1470) Ahim
»

Kako omogočiti WegGL support v Android appu?

Oddelek: Pomoč in nasveti
7935 (726) MasterMiG
»

Mobilna spletna stran --> mobilna aplikacija

Oddelek: Programiranje
92101 (1627) nightrage
»

[Android] pomoč pri postavitvi layouta

Oddelek: Programiranje
122216 (1974) icurk

Več podobnih tem