在Android上怎樣實(shí)現(xiàn)JAVA和JS交互呢?Android的webview是基于webkit內(nèi)核的,webview中集成了js與java互調(diào)的接口函數(shù),通過addJavas criptInterface方法,可以將Java的類注冊(cè)進(jìn)webkit,給網(wǎng)頁(yè)上的js進(jìn)行調(diào)用,而且還可以通過loadUrl方法是給webkit傳遞一個(gè)URL,供瀏覽器來進(jìn)行解析,實(shí)現(xiàn)Java和js交互。
十載的古城網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整古城建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“古城網(wǎng)站設(shè)計(jì)”,“古城網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
要想運(yùn)行網(wǎng)頁(yè)上的js腳本,webview必須設(shè)置支持Javas cript。
Java代碼
1mWebview.getSettings().setJavas criptEnabled(true);
然后是設(shè)置webview要加載的網(wǎng)頁(yè):
web的網(wǎng)頁(yè):webView.loadUrl("");
本地的網(wǎng)頁(yè):webView.loadUrl(""); //本地的存放在:assets文件夾中
webview做完基本的初始化后我們還要要給它,加進(jìn)一個(gè)回調(diào)的代理類Javas criptInterface,并給它一個(gè)調(diào)用的名稱:ncp
Java代碼
1mWebView.addJavas criptInterface(new Javas criptInterface(),"ncp");
Javas criptInterface可以是一個(gè)普通的Java類,類實(shí)現(xiàn)的方法,均可被js回調(diào):
Java代碼
final class Javas criptInterface {
public int callOnJs() {
return 1000;
}
public void callOnJs2(String mode) {
//TODO
}
}
Java要調(diào)用js的方法,只需知道js的方法名稱即可:
Java代碼
1mWebView.loadUrl("javas cript:onSaveCallback()");
首先,你要搞清楚JS是什么,它是在HTML頁(yè)面上運(yùn)用的,你想用JAVA代碼去調(diào)用,那是不行的都。最多,在前臺(tái)頁(yè)面,和后臺(tái)程序進(jìn)行交互的時(shí)候,你可以用到JS跳轉(zhuǎn)傳參到后臺(tái)JAVA程序中,進(jìn)行互動(dòng)。
JAVA直接調(diào)用JS的方法,我確實(shí)是沒有聽過
JDK1.6版添加了新的ScriptEngine類,允許用戶直接執(zhí)行js代碼。
在Java中直接調(diào)用js代碼
不能調(diào)用瀏覽器中定義的js函數(shù),會(huì)拋出異常提示ReferenceError: “alert” is not defined。
package com.sinaapp.manjushri;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException; /** * 直接調(diào)用js代碼 */
public class ScriptEngineTest {
public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
try{
engine.eval("var a=3; var b=4;print (a+b);");
// engine.eval("alert(\"js alert\");"); // 不能調(diào)用瀏覽器中定義的js函數(shù) // 錯(cuò)誤,會(huì)拋出alert引用不存在的異常
}catch(ScriptException e){
e.printStackTrace();
}
}
}
js是前臺(tái)頁(yè)面應(yīng)用技術(shù),java是后臺(tái)應(yīng)用技術(shù),js后臺(tái)是用不上的,如果需要,可以jsp在前臺(tái)混插使用。
Java是不可以插入js的,但是可以輸出js,一般有以下兩種方法:
1.通過request跳轉(zhuǎn)的方式,在中間彈出js代碼。
2.可以通過out.print()打印的方式把整個(gè)頁(yè)面打印出來,這中間雖然是Java中輸出,但是也是輸出的頁(yè)面。
大體這么多,也可能有我不知道的方法,如果覺的可以,給分,謝謝。
網(wǎng)頁(yè)標(biāo)題:java代碼中如何放js,如何用java編寫代碼
網(wǎng)頁(yè)URL:http://vcdvsql.cn/article30/hssgso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、外貿(mào)建站、全網(wǎng)營(yíng)銷推廣、定制開發(fā)、網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)