JS與Android原生互動
JS與Android原生互動
在專案的開發中我們會遇到android 原生與Html5的混合開發,我們可能會需要在android中呼叫js裡面的方法進行資料互動或其他的特殊處理,又或者在Html頁面呼叫android的原生的統一彈框或其他處理。這時候我們就需要給android和js設定介面,進行相互的呼叫。
1、android中設定JS對應的物件類JavaScriptObject
Android中設定JS的呼叫類,用於處理js呼叫android的方法,方法需標示@JavascriptInterface,否則不能呼叫到;
public class JavaScriptObject
{
public static final String obj = "javaObj"; //統一的類名
Context mContxt;
public JavaScriptObject(Context mContxt)
{
this.mContxt = mContxt;
}
@JavascriptInterface
public void funFromAndroid()
{
Toast.makeText(mContxt, "I am android!", Toast.LENGTH_LONG).show();
}
@JavascriptInterface
public void openDialog()
{
CenterPopDialog dialog = new CenterPopDialog(mContxt,"標題","人生若只如初見!",2,"cancel","ok")
{
@Override
public void left()
{
dismiss();
}
@Override
public void right()
{
dismiss();
}
};
dialog.show();
}
}
2、webview中設定
webView.addJavascriptInterface(new JavaScriptObject(WebViewDef.this), JavaScriptObject.obj);
3、JS中呼叫Android的方法
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title></title>
<script type="text/javascript">
function fromAndroid()
{
javaObj.funFromAndroid();
}
function funFromJS(msg)
{
alert(msg);
}
</script>
</head>
<body>
<button type="button" onclick="fromAndroid()">提示</button>
<button type="button" onclick="javaObj.openDialog()">彈出dailog</button>
</body>
</html>
4、Android呼叫JS的方法
webView.loadUrl(“javascript:funFromJS(‘”+msg+”’)”);
相關推薦
JS與Android原生互動
JS與Android原生互動 在專案的開發中我們會遇到android 原生與Html5的混合開發,我們可能會需要在android中呼叫js裡面的方法進行資料互動或其他的特殊處理,又或者在Html頁面呼
js 與 android 的互動(方法互呼叫) 和android向 js傳遞值, js向android傳引數 事件攔截看上一篇
mail_detail_v2.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewpor
H5與android原生的JS互動
公司最近接手了一個電信的專案,其中最關鍵的技術就是H5頁面與android的互動。因為之前專案中H5與原生介面的載入動畫是分開寫的,導致大小以及效果有差距,所以我才有接觸兩者之間互動的學習機會。簡單
WebViewJavascriptBridge實現js與android和ios原生交互
WebViewJavascriptB Android IOS js 1、實現原生與js交互 <!-- 申明交互 這段代碼固定必須有 --> function setupWebViewJavascriptBridge(callback) { //android使用
ios js與oc原生WKWebView方法注入及互動傳值
上篇文章中,我們整理了關於WKWebView的詳細使用,包含進度條、獲取web title等等內容,這篇文章我們整理下,專案中,我們可能使用到的oc 與 js 原生互動場景下的使用.如有興趣,
Flutter與Android原生程式碼互動
一、概述 Flutter正式版已經出了一段時間了,作為剛入門的一個菜鳥而言,我還需要更多的學習。 最近開始的flutter專案用到了分享功能,但是到目前為止,微信,QQ等還沒有出對flutter分享的SDK,這就需要用到flutter與Android和ios的原生互動。下面僅關於fl
Flutter與Android原生的互動
Flutter釋出Preview版本後熱度持續上升,但是仍然有很多不足之處,所有前期還是採用與原生結合的混合開發,那就需要了解Flutter與原生的互動的一些方法。 原生啟動Flutter Activity 新建Flutter 專案預設啟動MainAct
h5頁面與Android原生頁面互動
Android頁面內巢狀h5頁面已經是隨處可見了。在Android原生頁面和h5頁面的取捨上那些不是本文的重點。重點是,如此多的頁面用網頁來寫,那麼必定涉及到網頁與原生的互動,俗稱js互動。 目標:h5頁面點選按鈕Android端接收到網頁傳給的json資料。
QT通過JS與HTML的互動
標頭檔案加入 QT += core gui webenginewidgets webchannel 通過QWebChannel與JS互動原理 QWebEnginePage *page = new QWebEnginePage(this); webView->setPage
React Native與Android的互動
在使用RN進行跨平臺開發的過程中,經常會設計到跨平臺呼叫相關的內容,而在於RN進行互動的時候,最核心的就是RN提供的Component和Module。 其中,Component是專門將Native的UI暴露出來供JS呼叫的,而Native Module則是將N
React Native之js呼叫Android原生使用Callback傳遞結果給js
1 問題 上面的文章只是呼叫安卓原生顯示Toast,但是我們一般會需要呼叫安卓的程式碼然後去拿回結果給js,但是我們知道在android層js呼叫的這個函式返回值必須的void,所以我們需要用到Callback,Callback一般用於同步,也就是說直接呼叫
以太坊DApp開發:web3.js與智慧合約互動
前言 環境準備 ubuntu 14.0.4(16.0.4), 64位 還需要安裝以太坊相關的環境: nodejs truffle solidity testrpc 編寫智慧合約 首先在使用者目錄(home)下新建conference目錄(任意目錄都
ReactNative 與Android 原生傳引數 ReadableMap WritableMap
ReadableMap 主要是rn給原生傳遞引數時使用 (1)rn給原生傳遞引數 toast = () => { let obj={ id:1, name:"xi
node.js學習筆記(7)--Node.js與MongoDB簡單互動
1.建立工程 E:\test>express mongo -e create : mongo create : mongo/package.json create : mon
React Native與Android通訊互動
剛建立的React Native 微信公眾號,歡迎微信掃描關注訂閱號,每天定期會分享react native 技術文章,移動技術乾貨,精彩文章技術推送。同時可以掃描我的微信加入react-native技術交流微信群。歡迎各位大牛,React Native技術愛好者加入
Js與android webview遭遇過的坑
Uncaught TypeError: Object [object Object] has no method 可能產生該情況有幾種可能 1、安全限制問題 如果只在4.2版本以上的機器出問題,那麼就是系統處於安全限制的問題了。Android文件這
用web3.js與智慧合約互動(修改版)
工具:Truffle v4.0.4 ganache-1.1.0-beta(ui介面版) nodejs 8.9.4 npm 5.6.0 web3 1.0.0 思路: 1、先用truffle建立一個以太坊智慧合約專案,部署在ganache測試網路。 2、用np
用web3.js與智慧合約互動
工具:Truffle v4.0.4 ganache-1.1.0-beta(ui介面版)nodejs 8.9.4npm 5.6.0 web3 1.0.0思路:1、先用truffle建立一個以太坊智慧合約專案,部署在ganache測試網路。2、用npm建立另外一個專案,使用
cocos-js與android平臺互相呼叫
cocos-js中呼叫android平臺的介面:if (cc.sys.OS_ANDROID == cc.sys.os) { jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity", "
Unity與Android的互動之專案結構
概述 為什麼會寫這樣的文章,原因是我們在使用Unity做開發的時候少不了跟其它平臺做互動,特別是當前流行的Android和iOS。但是由於Unity官方文件缺少這方便詳細的資料,以及每個人的開發水平也參差不齊,再加上涉及到多平臺的互動(不同平臺的開發者不甚瞭解