日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
java中轉(zhuǎn)義js代碼 js中轉(zhuǎn)義字符的用法

在Android上怎樣實(shí)現(xiàn)JAVA和JS交互

在Android的開(kāi)發(fā)過(guò)程中、遇到一個(gè)新需求、那就是讓Java代碼和Javascript代碼進(jìn)行交互、在IOS中實(shí)現(xiàn)起來(lái)很麻煩、而在Android中相對(duì)來(lái)說(shuō)容易、Android對(duì)這種交互進(jìn)行很好的封裝、其實(shí)可以很簡(jiǎn)單的用Java代碼調(diào)用WebView中的js函數(shù)、也可以用WebView中的js來(lái)調(diào)用Android應(yīng)用中的Java代碼

成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括林芝網(wǎng)站建設(shè)、林芝網(wǎng)站制作、林芝網(wǎng)頁(yè)制作以及林芝網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,林芝網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到林芝省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

一、網(wǎng)頁(yè)的JS代碼調(diào)用ANDROID中JAVA代碼的方法

在網(wǎng)頁(yè)中調(diào)用java代碼、需要在webview控件中添加javascriptInterface

contentWebView = (WebView) findViewById(R.id.webview);

//啟用javascript

contentWebView.getSettings().setJavaScriptEnabled(true);

contentWebView.addJavascriptInterface(this, "js對(duì)象名");

在Activity中定義一個(gè)要被js調(diào)用的方法、src為js傳遞過(guò)來(lái)的參數(shù)、如果沒(méi)有不傳也可以的。

public void jsFunction(final String str) {

Toast.makeText(this, str, Toast.LENGTH_SHORT).show();

runOnUiThread(new Runnable() {

@Override

public void run() {

//在里對(duì)Android應(yīng)用的UI進(jìn)行處理

}

});

}

在網(wǎng)頁(yè)中、只需要像調(diào)用js方法一樣、進(jìn)行調(diào)用就可以

a onClick="window.js對(duì)象名.jsFunction(′hello world′)"

點(diǎn)擊調(diào)用java代碼并傳遞參數(shù)

/a

二、ANDROID中JAVA代碼調(diào)用網(wǎng)頁(yè)的JS代碼的方法

Java代碼調(diào)用js并傳參其實(shí)是通過(guò)WebView的loadUrl方法去調(diào)用的、只是參數(shù)url的寫(xiě)法不一樣

// 無(wú)參數(shù)調(diào)用

contentWebView.loadUrl("javascript:javacalljs()");

// 傳遞參數(shù)調(diào)用

contentWebView.loadUrl("javascript:javacalljswithargs("

+ "′hello world′" + ")");

三、JAVA和JS交互注意事項(xiàng)

1、Java 調(diào)用 js 里面的函數(shù)、效率并不是很高、估計(jì)要200ms左右吧、做交互性很強(qiáng)的事情、這種速度很難讓人接受、而js去調(diào)Java的方法、速度很快、50ms左右、所以盡量用js調(diào)用Java方法

2、Java 調(diào)用 js 的函數(shù)、沒(méi)有返回值、調(diào)用就控制不到

3、Js 調(diào)用 Java 的方法、返回值如果是字符串、你會(huì)發(fā)現(xiàn)這個(gè)字符串是 native 的、轉(zhuǎn)成 locale 的才能正常使用、使用 toLocaleString() 函數(shù)就可以、不過(guò)這個(gè)函數(shù)的速度并不快、轉(zhuǎn)化的字符串如果很多、將會(huì)很耗費(fèi)時(shí)間

4、網(wǎng)頁(yè)中盡量不要使用jQuery、執(zhí)行起來(lái)需要5-6秒、最好使用原生的js寫(xiě)業(yè)務(wù)腳本、以提升加載速度、改善用戶體驗(yàn)

javascript中怎么對(duì)已經(jīng)編碼的字符串解碼?

如果你是用escape編碼的,就用unescape()

如果你是用URLEncoder.encode()編碼的,就用decodeURI() 解碼。

java中有沒(méi)有方法類似于js中的encodeURIComponent函數(shù),對(duì)字符串中的特殊字符進(jìn)行轉(zhuǎn)義的?

//該方法不會(huì)對(duì) ASCII 字母和數(shù)字進(jìn)行編碼,也不會(huì)對(duì)這些 ASCII 標(biāo)點(diǎn)符號(hào)進(jìn)行編碼: - _ . ! ~ * ' ( ) 。

//其他字符(比如 :;/?:@=+$,#

var tDT_Start =$("#DT_Start").val().replace(/:/g,'|'); //將:替代為|,傳到后臺(tái)再轉(zhuǎn)換回來(lái)

var tDT_End =$("#DT_End").val().replace(/:/g,'|');

解析:字符串要匹配正則/:/g,將符合條件的替換為|

C#后臺(tái)tDT_Start= tDT_Start.Replace("|", ":");

javaScript中有三個(gè)可以對(duì)字符串編碼的函數(shù),分別是: escape,encodeURI,encodeURIComponent,相應(yīng)3個(gè)解碼函數(shù):unescape,decodeURI,decodeURIComponent 。

下面簡(jiǎn)單介紹一下它們的區(qū)別

1 escape()函數(shù)

定義和用法

escape() 函數(shù)可對(duì)字符串進(jìn)行編碼,這樣就可以在所有的計(jì)算機(jī)上讀取該字符串。

語(yǔ)法

escape(string)

參數(shù) 描述

string 必需。要被轉(zhuǎn)義或編碼的字符串。

返回值

已編碼的 string 的副本。其中某些字符被替換成了十六進(jìn)制的轉(zhuǎn)義序列。

說(shuō)明

該方法不會(huì)對(duì) ASCII 字母和數(shù)字進(jìn)行編碼,也不會(huì)對(duì)下面這些 ASCII 標(biāo)點(diǎn)符號(hào)進(jìn)行編碼: - _ . ! ~ * ' ( ) 。其他所有的字符都會(huì)被轉(zhuǎn)義序列替換。

MVC3

頁(yè)面js:

var url = URL +"?startDT="+ escape($("#StartDT").val();//時(shí)間

在action中,

{

string dt = Server.UrlDecode(startDT);

}

2 encodeURI()函數(shù)

定義和用法

encodeURI() 函數(shù)可把字符串作為 URI 進(jìn)行編碼。

語(yǔ)法

encodeURI(URIstring)

參數(shù) 描述

URIstring 必需。一個(gè)字符串,含有 URI 或其他要編碼的文本。

返回值

URIstring 的副本,其中的某些字符將被十六進(jìn)制的轉(zhuǎn)義序列進(jìn)行替換。

說(shuō)明

該方法不會(huì)對(duì) ASCII 字母和數(shù)字進(jìn)行編碼,也不會(huì)對(duì)這些 ASCII 標(biāo)點(diǎn)符號(hào)進(jìn)行編碼: - _ . ! ~ * ' ( ) 。

該方法的目的是對(duì) URI 進(jìn)行完整的編碼,因此對(duì)以下在 URI 中具有特殊含義的 ASCII 標(biāo)點(diǎn)符號(hào),encodeURI() 函數(shù)是不會(huì)進(jìn)行轉(zhuǎn)義的:;/?:@=+$,#

3 encodeURIComponent() 函數(shù)

定義和用法

encodeURIComponent() 函數(shù)可把字符串作為 URI 組件進(jìn)行編碼。

語(yǔ)法

encodeURIComponent(URIstring)

參數(shù) 描述

URIstring 必需。一個(gè)字符串,含有 URI 組件或其他要編碼的文本。

返回值

URIstring 的副本,其中的某些字符將被十六進(jìn)制的轉(zhuǎn)義序列進(jìn)行替換。

說(shuō)明

該方法不會(huì)對(duì) ASCII 字母和數(shù)字進(jìn)行編碼,也不會(huì)對(duì)這些 ASCII 標(biāo)點(diǎn)符號(hào)進(jìn)行編碼: - _ . ! ~ * ' ( ) 。

其他字符(比如 :;/?:@=+$,# 這些用于分隔 URI 組件的標(biāo)點(diǎn)符號(hào)),都是由一個(gè)或多個(gè)十六進(jìn)制的轉(zhuǎn)義序列替換的。

提示和注釋

提示:請(qǐng)注意 encodeURIComponent() 函數(shù) 與 encodeURI() 函數(shù)的區(qū)別之處,前者假定它的參數(shù)是 URI 的一部分(比如協(xié)議、主機(jī)名、路徑或查詢字符串)。因此 encodeURIComponent() 函數(shù)將轉(zhuǎn)義用于分隔 URI 各個(gè)部分的標(biāo)點(diǎn)符號(hào)。

4 總結(jié):

通過(guò)對(duì)三個(gè)函數(shù)的分析,我們可以知道:escape()除了 ASCII 字母、數(shù)字和特定的符號(hào)外,對(duì)傳進(jìn)來(lái)的字符串全部進(jìn)行轉(zhuǎn)義編碼,因此如果想對(duì)URL編碼,最好不要使用此方法。而encodeURI() 用于編碼整個(gè)URI,因?yàn)閁RI中的合法字符都不會(huì)被編碼轉(zhuǎn)換。encodeURIComponent方法在編碼單個(gè)URIComponent(指請(qǐng)求參 數(shù))應(yīng)當(dāng)是最常用的,它可以講參數(shù)中的中文、特殊字符進(jìn)行轉(zhuǎn)義,而不會(huì)影響整個(gè)URL。


分享名稱:java中轉(zhuǎn)義js代碼 js中轉(zhuǎn)義字符的用法
分享網(wǎng)址:http://www.dlmjj.cn/article/hppccs.html