Javascript和android原生互調

最近在做原生和js端的互調的功能,自己改了個demo,給大家講解下。
先上js代碼

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>方法調用基本流程測試</title>
</head>
<body>
<div id="helloweb"> <div id="echoInfo">如果有數據返回,會顯示在這兒</div></div><script type="text/javascript">function funFromjs(){document.getElementById("helloweb").innerHTML="HelloWebView,i'm from js";}function echoInfo( container, obj ){var domContainer = document.getElementById('echoInfo');domContainer.innerHTML = JSON.stringify( obj );}//function windowCallback( str ){//echoInfo( 'echoInfo', str );//}window.windowCallback = function( str ){echoInfo( 'echoInfo', str );};var MfsJSBridge = MfsJSBridge || undefined;if( undefined != MfsJSBridge ){//看這里var params = {id : 1,name : '測試'};var strParams = JSON.stringify( params );MfsJSBridge.invoke( 'testFunc', strParams, 'windowCallback');}else{alert('未定義MfsJSBridge');}</script></body>
</html>

android webview 設置可用javascript

//設置編碼mWebView.getSettings().setDefaultTextEncodingName("utf-8");//支持js
mWebView.getSettings().setJavaScriptEnabled(true);

android 調js

mBtn1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {mWebView.loadUrl("javascript:funFromjs()");//其中funFromjs()為js的方法Toast.makeText(mContext, "調用javascript:funFromjs()", Toast.LENGTH_LONG).show();}});

js調原生,原生響應時間并回調數據

mWebView.addJavascriptInterface(new Object(){//注意4.4以后加注解,位置在這個方法名上面,鑒于很多這個的例子,瞎、、寫注解位置,并需要下                        //載積分寫了這個@JavascriptInterfacepublic void invoke(String name ,String t,String callback) {if(name.equals("testFunc")){ //其中t 為js帶過來的數據          Toast.makeText(mContext, t,Toast.LENGTH_LONG).show();String strJson = "{\"code\":122, \"msg\":\"1231\", \"data\":null}";//回調數據給js 其中callback 為android 掉js 的方法名稱。mWebView.loadUrl("javascript:"+ callback +"('" + strJson + "')");}//  Toast.makeText(mContext, name, Toast.LENGTH_LONG).show();}},"MfsJSBridge");

代碼比較簡單,最主要的是 @JavascriptInterface注解的位置大家注意下。

源碼下載

轉載于:https://www.cnblogs.com/forezp/p/9852223.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/287299.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/287299.shtml
英文地址,請注明出處:http://en.pswp.cn/news/287299.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ice 服務java連接,“先進的互聯互通技術”–使用ice聯通php和java [part 1 server]

PHP沒有中間件&#xff0c;導致了對很多麻煩。比如&#xff0c;對數據庫的操作必須要鏈接數據庫&#xff0c;然后做SQL操作。WEB程序直接操作數據庫的方法&#xff0c;這樣會帶來很多人為因素的事故隱患&#xff0c;以及管理上的麻煩&#xff0c;尤其是對大型的網站應用來說。規…

HttpCookie

參考 : http://www.cnblogs.com/fish-li/archive/2011/07/03/2096903.html 上文結尾有提到一個說法 4. HttpRequest.Cookies 與 HttpResponse.Cookies 會有關系&#xff08;很奇怪吧&#xff09;。 微軟官網也是這么說的 : https://msdn.microsoft.com/en-us/library/system.we…

Android之BaseQuickAdapter.setOnItemChildClickListener點擊死人也沒反應的原因

1 問題 用BaseQuickAdapter設置子view點擊事件 unInstalledAdapter!!.setOnItemChildClickListener(object: BaseQuickAdapter.OnItemChildClickListener {override fun onItemChildClick(adapter: BaseQuickAdapter<*, *>?, view: View?, position: Int) {var info =…

【經典回放】多種語言系列數據結構算法:棧(C#版)

本文采用C#語言實現棧結構算法并舉例應用。 一、C#的棧對象使用 對C#而言,要使用棧是極其簡單的事情,因為C#已經有棧對象,所以根本不需要自用再用順序表構造棧,只需要你會說明、會應用即可。 在C#中棧對象的類型名稱是Stack,這是個泛型的對象,所以,你在使用這個對象的時…

美國銀行將AI應用于企業應收賬款處理

據外媒消息&#xff0c;美國銀行&#xff08;Bank of America&#xff09;與Fintech創業公司High Radius達成合作&#xff0c;將人工智能應用于企業應收賬款處理。該應用程序專為大型、復雜的公司管理大筆支付業務&#xff0c;因這些公司常常發生回款信息丟失或一方單獨收到付款…

在 Kubernetes 上部署 Secret 加密系統 Vault

HashiCorp Vault 是一個基于身份的 Secret 和加密管理系統。Secret 是您想要嚴格控制訪問的內容&#xff0c;例如 API 加密密鑰、密碼或證書。Vault 提供由身份驗證和授權方法控制的加密服務。使用 Vault 的 UI、CLI 或 HTTP API&#xff0c;可以安全地存儲和管理對機密和其他敏…

《看聊天記錄都學不會C語言?太菜了吧》(15)你學了一節課的函數我5分鐘搞定了,還很熟

若是大一學子或者是真心想學習剛入門的小伙伴可以私聊我&#xff0c;若你是真心學習可以送你書籍&#xff0c;指導你學習&#xff0c;給予你目標方向的學習路線&#xff0c;無套路&#xff0c;博客為證。 本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋…

【經典回放】多種語言系列數據結構算法:棧(JavaScript版)

本文采用JavaScript語言實現棧結構算法并舉例應用。 JavaScript的棧是數組對象中自動提供的,這點如同C#,實際也不需要自己編寫什么棧的程序,如果你用: var s=new Array(); 定義一個s的數組,則這個s上將有以下的方法可供使用: 其中:FF: Firefox, IE: Internet Explore…

設計模式(10)-----模板方法模式

模板方法模式(Template Method) 定義 定義了一個操作中的算法的骨架&#xff0c;而將一些步驟延遲到子類中。模板方法使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。 UML類圖 例子 AbstractClass package com.csdhsm.pattemdesign.template;/** * Title: …

Android之提示Caused by: java.lang.UnsupportedOperationException: Binary XML file line #67: You must sup

1 問題 : Caused by: java.lang.UnsupportedOperationException: Binary XML file line #67: You must supply a layout_width attribute. 05-08 16:42:59.322 23038 23038 E AndroidRuntime: at android.content.res.TypedArray.getLayoutDimension(TypedArray.java:7…

SLES修改本地FTP安裝源

2019獨角獸企業重金招聘Python工程師標準>>> SLES修改本地FTP安裝源 一、配置本機FTP............................................................................................................. 1 1.1、安裝.............................................…

.NET7 Preview4:重構的返回值TypedResults

為了更好的測試&#xff0c;更好的性能&#xff0c;Preview4帶了一個新的請求返回值類型&#xff0c;這個新的類型中封裝了所有的Http請求返回狀態函數&#xff0c;還包括了返回成功后的幾種數據類型&#xff0c;下面列舉了幾個常用的類型&#xff1a;app.MapGet("/test_o…

MATLAB軟件禁用利好,Matlab被禁用?一款國產軟件站了出來說:我就是中國的Matlab...

眾所周知&#xff0c;前段時間Matlab被禁用&#xff0c;引發了網友們對于國產工業軟件落后的諸多思考&#xff0c;比如為什么落后&#xff0c;落后到什么程度&#xff0c;有沒有替代品等等。并且從Matlab到EDA&#xff0c;再到CAD等等&#xff0c;甚至工業操作系統等等&#xf…

CMDB資產采集

Paramikoimport paramiko private_key paramiko.RSAKey.from_private_key_file(/home/auto/.ssh/id_rsa) # 創建SSH對象ssh paramiko.SSHClient()# 允許連接不在know_hosts文件中的主機ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 連接服務器ssh.connect(ho…

《看聊天記錄都學不會Python到游戲實戰?太菜了吧》(3)都說123是字符不是數字

本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋了新手在學習中的一般問題。此系列將會持續更新&#xff0c;包括別的語言以及實戰都將使用對話的方式進行教學&#xff0c;基礎編程語言教學適用于零基礎小白&#xff0c;之后實戰課程也將會逐步更新。 若…

ArcGIS實驗教程:ArcGIS 10.2手把手圖文安裝教程(經典版)

ArcGIS實驗視頻教程合集&#xff1a;《ArcGIS實驗教程從入門到精通》&#xff08;附配套實驗數據&#xff09; ArcGIS許可服務無法啟動解決辦法&#xff1a;Win10操作系統ArcGIS許可License無法啟動的解決方法匯總&#xff08;絕對成功&#xff01;&#xff09; 目錄 一、系統…

html中radio,checkbox值的獲取、賦值、注冊事件

1&#xff0c;radio分組 只要name一樣&#xff0c;就是一組的&#xff0c;即一組中只能選擇一個&#xff0c;如下&#xff1a; 代碼如下:<span>group1:</span> <input type"radio" id"radio1" checked"checked" name"grou…

ObjectAnimator屬性動畫應用demo

感謝慕課網--eclipse_xu 布局文件&#xff1a;activity_main.xml 1 <FrameLayout xmlns:android"http://schemas.android.com/apk/res/android"2 xmlns:tools"http://schemas.android.com/tools"3 android:layout_width"match_parent"…

java數據庫防火墻,數據庫centos7防火墻導致java程序訪問mongodb3.0.1時報錯的問題分析...

環境描述&#xff1a;數據庫&#xff1a;mongodb3.0.1數據庫系統&#xff1a;centos7,(虛擬機&#xff0c;最小安裝)數據庫驅動&#xff1a;mongo-Java-driver-3.0.0.jar問題描述&#xff1a;shell環境下用mongo客戶端程序能正常連接mongod&#xff0c;但java程序始終報錯。查看…

Android之提示androidx.recyclerview.widget.LinearLayoutManager@51ddcd is already attached to a RecyclerV

1 問題 我有2個recycleView,但是用的同一個線性布局導致錯誤如下 LayoutManager androidx.recyclerview.widget.LinearLayoutManager@51ddcd is already attached to a RecyclerView: androidx.recyclerview.widget.RecyclerView{dfe1682 VFED..... ......I. 0,0-0,0 #7f090…