這是一門課程了,java web或者叫jsp。jsp就是由html和java腳本,等語言構(gòu)成的。java程序嵌套在html里,相當(dāng)于php。以網(wǎng)頁的形式將java展現(xiàn)。這也就是所謂的動(dòng)態(tài)。以為java程序獲取的時(shí)間會(huì)變動(dòng)?;蛘邤?shù)據(jù)庫變動(dòng)從而引起網(wǎng)頁的變動(dòng)。
堅(jiān)守“ 做人真誠 · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價(jià)值觀,專業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都公路鉆孔機(jī)小微創(chuàng)業(yè)公司專業(yè)提供企業(yè)網(wǎng)站制作營銷網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺設(shè)計(jì)、底層架構(gòu)、網(wǎng)頁布局、功能開發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。
延展閱讀:
HTML5有以下優(yōu)點(diǎn):
提高可用性和改進(jìn)用戶的友好體驗(yàn);
有幾個(gè)新的標(biāo)簽,這將有助于開發(fā)人員定義重要的內(nèi)容;
可以給站點(diǎn)帶來更多的多媒體元素(視頻和音頻);
可以很好的替代FLASH和Silverlight;
當(dāng)涉及到網(wǎng)站的抓取和索引的時(shí)候,對于SEO很友好;
將被大量應(yīng)用于移動(dòng)應(yīng)用程序和游戲。
Android和H5之間的交互
hybrid App開發(fā)也不是什么新鮮事了,其中native和h5之間的交互則是必不可少的。Android中是如何和H5交互的?
1、webView加載頁面
我們都知道在Android中是通過webView來加載html頁面的,根據(jù)HTML文件所在的位置不同寫法也不同:
//例如:加載assets文件夾下的test.html頁面
mWebView.loadUrl("")
//例如:加載網(wǎng)頁
mWebView.loadUrl("")
如果只是這樣調(diào)用mWebView.loadUrl()加載的話,那么當(dāng)你點(diǎn)擊頁面中的鏈接時(shí),頁面將會(huì)在你手機(jī)默認(rèn)的瀏覽器上打開。那如果想要頁面在App內(nèi)中打開的話,那么就得設(shè)置setWebViewClient:
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
mWebView.loadUrl(url);
return true;
}
}
});
2、Android本地通過Java調(diào)用HTML頁面中的JavaScript方法
想要調(diào)用js方法那么就必須讓webView支持
WebSettings webSettings = mWebView.getSettings();
//設(shè)置為可調(diào)用js方法
webSettings.setJavaScriptEnabled(true);
若調(diào)用的js方法沒有返回值,則直接可以調(diào)用mWebView.loadUrl("JavaScript:do()");其中do是js中的方法;若有返回值時(shí)我們可以調(diào)用mWebView.evaluateJavascript()方法:
mWebView.evaluateJavascript("sum(1,2)", new ValueCallbackString() {
@Override
public void onReceiveValue(String value) {
Log.e(TAG, "onReceiveValue value=" + value);
}
});
js代碼如下:
script type="text/javascript"
function sum(a,b){
return a+b;
}
function do(){
document.getElementById("p").innerHTML="hello world";
}
/script
2、js調(diào)用Android本地Java方法
在Android4.2以上可以直接使用@JavascriptInterface注解來聲明,下面是在一個(gè)本地Java方法
public class JsInteration {
@JavascriptInterface
public String back() {
return "hello world";
}
}
定義完這個(gè)方法后再調(diào)用mWebView.addJavascriptInterface()方法:
mWebView.addJavascriptInterface(new JsInteration(), "android");
那么在js中怎么來調(diào)用呢?
script type="text/javascript"
function s(){
//調(diào)用Java的back()方法
var result =window.android.back();
document.getElementById("p").innerHTML=result;
}
/script
4、攔截HTML頁面中的點(diǎn)擊事件
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//判斷url攔截事件
if (url.equals("")) {
Log.e(TAG, "shouldOverrideUrlLoading: " + url);
startActivity(new Intent(MainActivity.this,Main2Activity.class));
return true;
} else {
mWebView.loadUrl(url);
return false;
}
}
});
以上就是Java調(diào)用js方法以及js調(diào)用Java方法的實(shí)現(xiàn)交互方式中的一種。下面給出完整代碼:
mainActivity
public class MainActivity extends AppCompatActivity {
public static final String TAG = "MainActivity";
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = (WebView) findViewById(R.id.webView);
mWebView.loadUrl("");
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(new JsInteration(), "android");
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.equals("")) {
Log.e(TAG, "shouldOverrideUrlLoading: " + url);
startActivity(new Intent(MainActivity.this,Main2Activity.class));
return true;
} else {
mWebView.loadUrl(url);
return false;
}
}
});
}
//Android調(diào)用有返回值js方法
@TargetApi(Build.VERSION_CODES.KITKAT)
public void onClick(View v) {
mWebView.evaluateJavascript("sum(1,2)", new ValueCallbackString() {
@Override
public void onReceiveValue(String value) {
Log.e(TAG, "onReceiveValue value=" + value);
}
});
}
public class JsInteration {
@JavascriptInterface
public String back() {
return "hello world";
}
}
}
test.html
!DOCTYPE html
html
head
title/title
script type="text/javascript"
function sum(a,b){
return a+b;
}
function s(){
var result =window.android.back();
document.getElementById("p").innerHTML=result;
}
/script
/head
body
button onclick="s()"調(diào)用本地方法/button
a href=""點(diǎn)擊/a
p id="p"/p
/body
/html
編輯菜單中的整理代碼格式
快捷鍵ctrl+shift+F
一般情況最好是自己邊編寫邊排版
當(dāng)前題目:關(guān)于h5調(diào)用本地java代碼的信息
標(biāo)題URL:http://vcdvsql.cn/article6/hedcig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、網(wǎng)站制作、標(biāo)簽優(yōu)化、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)