æ¨å¥½ï¼å¾é«å
´è½å¸®å©æ¨ï¼Androidä¸webviewåjsä¹é´ç交äº1.androidä¸å©ç¨webviewè°ç¨ç½é¡µä¸çjs代ç ãAndroid ä¸å¯ä»¥éè¿webviewæ¥å®ç°åjsç交äºï¼å¨ç¨åºä¸è°ç¨js代ç ï¼åªéè¦å°webviewæ§ä»¶çæ¯æjsçå±æ§è®¾ç½®ä¸ºtrueï¼ï¼ç¶åéè¿loadUrlå°±å¯ä»¥ç´æ¥è¿è¡è°ç¨ï¼å¦ä¸æ示ï¼mWebView.getSettings().setJavaScriptEnabled(true);mWebView.loadUrl("javascript:test()");2. ç½é¡µä¸è°ç¨androidä¸java代ç çæ¹æ³å¨ç½é¡µä¸è°ç¨java代ç ï¼éè¦å¨webviewæ§ä»¶ä¸æ·»å javascriptInterfaceãå¦ä¸æ示ï¼mWebView.addJavascriptInterface(new Object() { public void clickOnAndroid() { mHandler.post(new Runnable() { public void run() { Toast.makeText(Test.this, "æµè¯è°ç¨java", Toast.LENGTH_LONG).show(); } }); } }, "demo");å¨ç½é¡µä¸ï¼åªéè¦åè°ç¨jsæ¹æ³ä¸æ ·ï¼è¿è¡è°ç¨å°±å¯ä»¥<div id='b'><a onclick="window.demo.clickOnAndroid()">b.c</a></div>3. Java代ç è°ç¨jså¹¶ä¼ åé¦å
éè¦å¸¦åæ°çjså½æ°ï¼å¦function test(str)ï¼ç¶ååªéå¨è°ç¨jsæ¶ä¼ å
¥åæ°å³å¯ï¼å¦ä¸æ示ï¼mWebView.loadUrl("javascript:test('aa')");4.Jsä¸è°ç¨javaå½æ°å¹¶ä¼ åé¦å
ä¸æ ·éè¦å¸¦åæ°çå½æ°å½¢å¼ï¼ä½é注ææ¤å¤çåæ°éè¦finalç±»åï¼å³å¾å°ä»¥åä¸å¯ä¿®æ¹ï¼å¦æéè¦ä¿®æ¹å
¶ä¸çå¼ï¼å¯ä»¥å
设置ä¸é´åéï¼ç¶åè¿è¡ä¿®æ¹ãå¦ä¸æ示ï¼mWebView.addJavascriptInterface(new Object() { public void clickOnAndroid(final int i) { mHandler.post(new Runnable() { public void run() { int j = i; j++;Toast.makeText(Test.this, "æµè¯è°ç¨java" + String.valueOf(j), Toast.LENGTH_LONG).show(); } }); } }, "demo");ç¶åå¨html页é¢ä¸ï¼å©ç¨å¦ä¸ä»£ç <div id='b'><a onclick="window.demo.clickOnAndroid(2)">b.c</a></div>ï¼å³å¯å®ç°è°ç¨ä½ çé纳æ¯æåè¿çå¨åï¼è¿æä¸æçå°æ¹ï¼è¯·ä½ 继ç»â追é®âï¼å¦ä½ è¿æå«çé®é¢ï¼å¯å¦å¤åææ±å©ï¼çé¢ä¸æï¼äºç¸ç解ï¼äºç¸å¸®å©ï¼
追é®è½ä¸è½æä¸çåï¼è¿æ ·æ²¡æ³çåãè¿æè½ä¸è½ä¸è¦å¤å¶ç²è´´ï¼ç®çä¸ç¹