當前位置:首頁 » 安卓系統 » android調js

android調js

發布時間: 2024-03-11 11:35:13

『壹』 android webview js 交互 怎麼調用js 的new

android webview js 交互 調用
第一步:
mainfest.xml中加入網路許可權

[java] view plain
<uses-permission android:name="android.permission.INTERNET" />
第二步:

載入本地寫好的html文件(定義好js中提供給android調用的方法 funFromjs(),和android提供給js調用的對象介面fun1FromAndroid(String name)),放在 assets目錄下。

[html] view plain
<body>
<a>js中調用本地方法</a>
<script>

function funFromjs(){
document.getElementById("helloweb").innerHTML="HelloWebView,i'm from js";
}
var aTag = document.getElementsByTagName('a')[0];
aTag.addEventListener('click', function(){
//調用android本地方法
myObj.fun1FromAndroid("調用android本地方法fun1FromAndroid(String name)!!");
return false;
}, false);
</script>
<p></p>
<div id="helloweb">

</div>
</body>

第三步:

實現android工程與js交互的相關代碼
android主題代碼:

[java] view plain
@SuppressLint({ "JavascriptInterface", "SetJavaScriptEnabled" })
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化
initViews();

//設置編碼
mWebView.getSettings().setDefaultTextEncodingName("utf-8");
//支持js
mWebView.getSettings().setJavaScriptEnabled(true);
//設置背景顏色 透明
mWebView.setBackgroundColor(Color.argb(0, 0, 0, 0));
//設置本地調用對象及其介面
mWebView.addJavascriptInterface(new JavaScriptObject(mContext), "myObj");
//載入js
mWebView.loadUrl("file:///android_asset/test.html");

//點擊調用js中方法
mBtn1.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
mWebView.loadUrl("javascript:funFromjs()");
Toast.makeText(mContext, "調用javascript:funFromjs()", Toast.LENGTH_LONG).show();
}
});

}
js調用的android對象方法定義

[java] view plain
public class JavaScriptObject {
Context mContxt;
@JavascriptInterface //sdk17版本以上加上註解
public JavaScriptObject(Context mContxt) {
this.mContxt = mContxt;
}

public void fun1FromAndroid(String name) {
Toast.makeText(mContxt, name, Toast.LENGTH_LONG).show();
}

public void fun2(String name) {
Toast.makeText(mContxt, "調用fun2:" + name, Toast.LENGTH_SHORT).show();
}
}

『貳』 android 中怎麼執行js腳本

android要執行腳本,只有通過本地的webview打開腳本頁面。

調用步驟

1、設置webview支持腳本

webSettings.setJavaScriptEnabled(true);

2、打開腳本頁面

mWebView.loadUrl("file:///android_asset/demo.html");//這里打開該app的asset目錄下的demo.html,裡面含有wave函數腳本

3、調用腳本

mWebView.loadUrl("javascript:wave()");//調用打開頁面中的wave函數

『叄』 android里如何調用Js里的函數

Android中內置了WebKit模塊,而該模塊的Java層視圖類就是WebView,所有需要使用Web瀏覽器功能的Android都需要創建該視圖類對象顯示和處理請求的網路資源。目前WebKit支持Http、Https、Ftp和JavaScript請求。


1、在Assets下放一個簡單的html文件jstest.html

<HTML>
<HEAD>
<metaname="viewport"content="width=device-width,target-densitydpi=device-dpi"/>
<METAhttp-equiv="Content-Type"content="text/html;charset=UTF-8">
<script>
functionshowMsg(){
alert("helloworld!");
}
functionshowMsgInAndroid(){
myjs.showMsg('helloinandroid!');
}
</script>
</HEAD>
<BODY>
<span>測試js使用</span>
<buttonid='btntest'onclick='showMsgInAndroid()'>調用android方法</button>
</BODY>
</HTML>


2、布局文件main.xml

<?xmlversion="1.0"encoding="utf-8"?>
<RelativeLayout
android:id="@+id/rl_main"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<WebView
android:id="@+id/wv_test"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/btn_showmsg"/>
<Button
android:id="@+id/btn_showmsg"
android:layout_width="200dip"
android:layout_height="40dip"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="調用html中js方法"/>
</RelativeLayout>

3、然後是Activity,MainActivity.java


packagecom.harold.jstest;
importcom.harold.base.JSKit;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.os.Handler;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.webkit.WebChromeClient;
importandroid.webkit.WebView;
importandroid.widget.Button;
{
privateWebViewmWebView;
privateButtonbtnShowInfo;
privateJSKitjs;
privateHandlermHandler=newHandler();
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//初始化控制項
mWebView=(WebView)findViewById(R.id.wv_test);
btnShowInfo=(Button)findViewById(R.id.btn_showmsg);
//實例化js對象
js=newJSKit(this);
//設置參數
mWebView.getSettings().setBuiltInZoomControls(true);
//內容的渲染需要webviewChromClient去實現,
//設置webviewChromClient基類,解決js中alert不彈出的問題和其他內容渲染問題
mWebView.setWebChromeClient(newWebChromeClient());
mWebView.getSettings().setJavaScriptEnabled(true);
//把js綁定到全局的myjs上,myjs的作用域是全局的,初始化後可隨處使用
mWebView.addJavascriptInterface(js,"myjs");
mWebView.loadUrl("file:///android_asset/jstest.html");
btnShowInfo.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewv){
mHandler.post(newRunnable(){
@Override
publicvoidrun(){
//調用HTML中的javaScript函數
mWebView.loadUrl("javascript:showMsg()");
}
});
}
});
}
}

『肆』 安卓和javascript交互必須通過webView嗎可以用安卓的其他控制項調用js嗎還有他們能通過volley交互嗎

您好,很高興能幫助您, Android中webview和js之間的交互 1.android中利用webview調用網頁上的js代碼。 Android 中可以通過webview來實現和js的交互,在程序中調用js代碼,只需要將webview控制項的支持js的屬性設置為true,,然後通過loadUrl就可以直接進行調用,如下所示: mWebView.getSettings().setJavaScriptEnabled(true); mWebView.loadUrl("javascript:test()"); 2. 網頁上調用android中java代碼的方法 在網頁中調用java代碼,需要在webview控制項中添加javascriptInterface。如下所示: mWebView.addJavascriptInterface(new Object() { public void clickOnAndroid() { mHandler.post(new Runnable() { public void run() { 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函數,如function test(str),然後只需在調用js時傳入參數即可,如下所示: mWebView.loadUrl("javascript:test('aa')"); 4.Js中調用java函數並傳參 首先一樣需要帶參數的函數形式,但需注意此處的參數需要final類型,即得到以後不可修改,如果需要修改其中的值,可以先設置中間變數,然後進行修改。如下所示: mWebView.addJavascriptInterface(new Object() { public void clickOnAndroid(final int i) { mHandler.post(new Runnable() { public void run() { int j = i; j++; Toast.makeText(Test.this, "測試調用java" + String.valueOf(j), Toast.LENGTH_LONG).show(); } }); } }, "demo"); 然後在html頁面中,利用如下代碼<div id='b'><a onclick="window.demo.clickOnAndroid(2)">b.c</a></div>, 即可實現調用 你的採納是我前進的動力,還有不懂的地方,請你繼續「追問」! 如你還有別的問題,可另外向我求助;答題不易,互相理解,互相幫助!

『伍』 安卓上本地網頁如何用JS或HTML獲取本地路徑

在開發過程中有時會遇到這種情況,需要調用js的一些方法,又不需要顯示h5界面。比如,在你開發的產品中,PC、h5,移動端(Android、IOS)都需要使用到同一個演算法,而且這個演算法又非常的復雜,若每個端都寫一邊,不僅浪費時間,而且如果演算法涉及到復雜的數字計算,那麼就可能會導致每個端寫出來的演算法結果不一致。

所以這個時候,使用js編寫一個通用演算法是比較理想的一個解決方法,因為pc、h5、Android、ios都可以直接調用js代碼,並執行計算結果。
Android調用本地js步驟:步驟一:在assets下添加你需要執行的js代碼步驟二:Android代碼 WebView mWebView = null;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (mWebView == null) {
initWebView();
}
getPrxResult();
}

/**
* 調用js方法
*/
private void getPrxResult(){
String e ="";
String t ="";
String url2 = "javascript:jclqBonusRange(" + e + "," + t + ")"; //調用js方法
mWebView.loadUrl(url2) } /*** 初始化webview
*protected void initWebView() {
mWebView = new WebView(this);
mWebView.getSetting

熱點內容
預編譯查詢 發布:2024-11-28 05:32:35 瀏覽:312
山東青島iptv設置密碼是多少 發布:2024-11-28 05:30:26 瀏覽:315
小鵬的解壓 發布:2024-11-28 05:10:07 瀏覽:21
ibm存儲售後 發布:2024-11-28 05:00:39 瀏覽:32
python監控進程腳本 發布:2024-11-28 04:54:47 瀏覽:180
android載入html頁面 發布:2024-11-28 04:54:38 瀏覽:901
噻苯隆如何配置 發布:2024-11-28 04:53:56 瀏覽:395
普通電腦改伺服器風道風罩 發布:2024-11-28 04:52:28 瀏覽:454
什麼安卓手機像8p一樣 發布:2024-11-28 04:43:17 瀏覽:225
連接資料庫參數 發布:2024-11-28 04:43:15 瀏覽:808