js與java的交互
㈠ 在Android上怎樣實現java和JS交互
java和js交互分為三種情況,分別是:
1 調用網頁上的js代碼
Android中可以通過webview來實現和js的交互,在程序中調用js代碼,只需要將webview控制項的支持js的屬性設置為true,,然後通過loadUrl就可以直接進行調用,如下所示:
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("javascript:test()");
2 網頁java代碼的方法
在網頁中調用java代碼,需要在webview控制項中添加javascriptInterface。如下所示:
mWebView.addJavascriptInterface(newObject(){
publicvoidclickOnAndroid(){
mHandler.post(newRunnable(){
publicvoidrun(){
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函數,如functiontest(str),然後只需在調用js時傳入參數即可,如下所示:
mWebView.loadUrl("javascript:test('aa')");
4.Js中調用java函數並傳參
首先一樣需要帶參數的函數形式,但需注意此處的參數需要final類型,即得到以後不可修改,如果需要修改其中的值,可以先設置中間變數,然後進行修改。如下所示:
mWebView.addJavascriptInterface(newObject(){
publicvoidclickOnAndroid(finalinti){
mHandler.post(newRunnable(){
publicvoidrun(){
intj=i;
j++;
Toast.makeText(Test.this,"測試調用java"+String.valueOf(j),Toast.LENGTH_LONG).show();
}
});
}
},"demo");
然後在html頁面中,利用如下代碼<divid='b'><aonclick="window.demo.clickOnAndroid(2)">b.c</a></div>,
下面是安卓無憂中js 與安卓相互調用的效果圖,可以網路一下安卓無憂,點擊源碼,看看裡面的源碼。
㈡ 在Android上怎樣實現JAVA和JS交互
Android中java與js交互是通過webView來交互的。
WebView(網路視圖)能載入顯示網頁,可以將其視為一個瀏覽器。它使用了WebKit渲染引擎載入顯示網頁,實現WebView有以下兩種不同的方法:
第一種方法的步驟:
1.在要Activity中實例化WebView組件:WebView webView = new WebView(this);
2.調用WebView的loadUrl()方法,設置WevView要顯示的網頁:
互聯網用:webView.loadUrl("http://www.google.com");
本地文件用:webView.loadUrl("file:///android_asset/XX.html"); 本地文件存放在:assets 文件中
3.調用Activity的setContentView( )方法來顯示網頁視圖
4.用WebView點鏈接看了很多頁以後為了讓WebView支持回退功能,需要覆蓋覆蓋Activity類的onKeyDown()方法,如果不做任何處理,點擊系統回退剪鍵,整個瀏覽器會調用finish()而結束自身,而不是回退到上一頁面
5.需要在AndroidManifest.xml文件中添加許可權,否則會出現Web page not available錯誤。
<uses-permission android:name="android.permission.INTERNET" />
第二種方法的步驟:
1、在布局文件中聲明WebView
2、在Activity中實例化WebView
3、調用WebView的loadUrl( )方法,設置WevView要顯示的網頁
4、為了讓WebView能夠響應超鏈接功能,調用setWebViewClient( )方法,設置 WebView視圖
5、用WebView點鏈接看了很多頁以後為了讓WebView支持回退功能,需要覆蓋覆蓋Activity類的onKeyDown()方法,如果不做任何處理,點擊系統回退剪鍵,整個瀏覽器會調用finish()而結束自身,而不是回退到上一頁面
6、需要在AndroidManifest.xml文件中添加許可權,否則出現Web page not available錯誤。
<uses-permission android:name="android.permission.INTERNET"/>
㈢ 在Android上怎樣實現JAVA和JS交互
完全講完的話比較多,我就不講太細,有兩種實現方式
1、使用原生的webview 和js交互
2、第二種方式是用第三方框架,這個框架一定要選好,要js android ios都能用 不然最後會發現這個能交互那個不能,代碼需要些兩套
我上個項目用的:'com.gzsll.jsbridge:library:1.0.0'
具體用法可以網路到
㈣ 安卓原生和js交互的4種方式 java和js交互 安卓JsBridge原理解析
JsBridge是實現Android與JavaScript交互的流行方式,共有四種方法可以實現數據傳遞。第一種方法是通過`addJavascriptInterface`實現JS調用Android。此方法使用`public void addJavascriptInterface(Object object, String name) {}`,其中`object`為Android對象,`name`為其別名。例如,`webview.addJavascriptInterface(JavaH5Activity.this, "androidObject");`將JavaH5Activity實例命名為androidObject傳遞給JS。在JS中調用時,使用`window.androidObject.androidMethod();`獲取Android傳遞的數據。示例代碼展示了JS和Android運行效果與日誌輸出。
第二種方法是`shouldOverrideUrlLoading`,允許JS通過重定向觸發Android攔截,解析URL中的數據,並指揮Android執行相應操作。簡單的重定向代碼和URL編碼示例展示了如何將數據傳遞給Android。列印結果驗證了數據解析和執行情況。
第三種方法是通過`loadUrl`實現Android調用JS。示例代碼展示了如何將數據`jsonParams`傳遞給JS並顯示在H5頁面上。通過修改JS代碼中的注釋,演示了請求重定向的問題,隨後介紹了一種方法來彌補這一缺陷。
第四種方法是`evaluateJavascript`,允許Android調用JS代碼,實現數據雙向傳遞。示例代碼與運行結果展示了其功能,通過日誌輸出驗證了數據的交互過程。
JSBridge原理簡述為:它是一座由JavaScript構建的橋梁,替代WebView自帶的介面,提供靈活、安全的Android與JS交互機制。它允許根據預約定的規則通知Native執行特定操作,實現兩者的交互。
若有編程疑問,歡迎私信我,我會盡快解答。我是編程小石頭,一名全棧開發者,分享編程經驗與心得,希望幫助後來者少走彎路。關注我,獲取更多干貨分享。