導航:首頁 > 編程語言 > js觸發android

js觸發android

發布時間:2023-09-16 06:17:40

⑴ android 中怎麼執行js腳本

按照給定的字元集存儲文件時,在文件的最開頭的三個位元組中就有可能存儲著編碼信息,所以內,基本的容原理就是只要讀出文件前三個位元組,判定這些位元組的值,就可以得知其編碼的格式。
其實,如果項目運行的平台就是中文操作系統
如果這些文本文件在項目內產生,即開發人員可以控制文本的編碼格式,
只要判定兩種常見的編碼就可以了:GBK和UTF-8。
由於中文Windows默認的編碼是GBK,所以一般只要判定UTF-8編碼格式。

⑵ android與js交互實現什麼功能

第一步:
mainfest.xml中加入網路許可權

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

載入本地寫好的html文件(定義好js中提供給android調用的方法 funFromjs(),和提供給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();
}
}

⑶ 怎麼在web工程的jsp頁面的js中調用android工程的中的activity中的方法

通過webview打開頁面,然後與activity進行交互。

步驟

第一步:設置支持腳本

mWebView=(WebView)findViewById(R.id.webview);
WebSettingswebSettings=mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);//設置webview支持腳本

第二步:在activity中給webview增加js交互external介面demo

mWebView.addJavascriptInterface(newDemoJavaScriptInterface(),"demo");//增加js介面交互external別名demo
{
DemoJavaScriptInterface(){
}
publicvoidclickOnAndroid(){
}
}

第三步:js訪問activity

<aonClick="window.demo.clickOnAndroid()">單擊我訪問activity的方法</a>

⑷ JS 調用android的方法該怎麼調

用webview打開網頁,然後通過webview與app的本地java代碼進行交互。

1、設置webview支持Javascript

mWebview.getSettings().setJavaScriptEnabled(true);

2、加進一個回調的代理類JavaScriptInterface,並給它一個調用的名稱:ncp

mWebView.addJavascriptInterface(newJavaScriptInterface(),"ncp");
finalclassJavaScriptInterface{
publicintcallOnJs(){
return1000;
}
publicvoidcallOnJs2(Stringmode){
//TODO
}
}

3、JS頁面調用android方法

<scripttype="text/javascript">
window.onload=function(){
var_int_value=window.ncp.callOnJs();//通過ncp代理調用android方法
}
</script>

⑸ JS怎樣調用Android本地原生方法

在android中調用本地js文件里的方法並得到返回值其方法如下:

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

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

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html40/strict.dtd">
<HTML>
<HEAD>
<meta name="viewport" content="width=device-width, target-densitydpi=device-dpi" />
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script>
function showMsg(){
alert("hello world!");
}
function showMsgInAndroid(){
myjs.showMsg('hello in android!');
}
</script>
</HEAD>
<BODY>
<span>測試js使用</span>

<button id='btntest' onclick='showMsgInAndroid()'>調用android方法</button>
</BODY>
</HTML>
2、布局文件main.xml

<?xml version="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
package com.harold.jstest;

import com.harold.base.JSKit;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.widget.Button;

public class MainActivity extends Activity {

private WebView mWebView;
private Button btnShowInfo;
private JSKit js;
private Handler mHandler = new Handler();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//初始化控制項
mWebView = (WebView) findViewById(R.id.wv_test);
btnShowInfo = (Button) findViewById(R.id.btn_showmsg);
//實例化js對象
js = new JSKit(this);
//設置參數
mWebView.getSettings().setBuiltInZoomControls(true);
//內容的渲染需要webviewChromClient去實現,設置webviewChromClient基類,解決js中alert不彈出的問題和其他內容渲染問題
mWebView.setWebChromeClient(new WebChromeClient());
mWebView.getSettings().setJavaScriptEnabled(true);
//把js綁定到全局的myjs上,myjs的作用域是全局的,初始化後可隨處使用
mWebView.addJavascriptInterface(js, "myjs");

mWebView.loadUrl("file:///android_asset/jstest.html");

btnShowInfo.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
mHandler.post(new Runnable() {
@Override
public void run() {
//調用 HTML 中的javaScript 函數
mWebView.loadUrl("javascript:showMsg()");
}
});
}
});
}

}

4、最後是綁定全局js的類JSKit.java
package com.harold.base;

import android.widget.Toast;

import com.harold.jstest.MainActivity;

public class JSKit {
private MainActivity ma;

public JSKit(MainActivity context) {
this.ma = context;
}

public void showMsg(String msg) {
Toast.makeText(ma, msg, Toast.LENGTH_SHORT).show();
}
}

例子比較簡單,代碼里都加了注釋,這里就不多說了,本示例用的本地的html,如果訪問網路中的網頁,別忘記在AndroidManifest.xml中加許可權
<uses-permission android:name="android.permission.INTERNET"/>

⑹ JS怎樣調用Android本地原生方法

NativeScript的工作原理:用JavaScript調用原生API實現跨平台 NativeScript是最近推出的一個跨平台解決方案,可以讓你可以用JavaScript來直接寫Android、iOS本地應用程序,未來還即將擴展到Windows平台。是最近比較受關注的項目。它與 nw (原名node-webkit ,用Web寫winodw/linux桌面應用)和 phonegap內嵌webview寫APP的實現方式有著本質的不同,它直接用JavaScript調用系統原生API,因而有一些原生應用的特點。 NativeScript是一個運行環境,可以讓你使用通用的JavaScript代碼,打造原生的iOS,Android和Windows(即將推出)應用程序。 NativeScript有很多很酷的功能,比如支持JavaScript對象雙向綁定到原生UI組件,以及用CSS為原生應用程序寫樣式。但我最喜歡的功能是NativeScript可以讓您直接訪問本地平台的原生API。 注* 可以理解為NativeScript是一個JavaScript V8運行環境的命令轉發代理,將JavaScript調用轉發給不同平台上的原生API如Android、iOS,以及即將支持的Windows。 例如,看看這個NativeScript寫的Android應用程序的代碼: 123var time = new android.text.format.Time();time.set( 1, 0, 2015 );console.log( time.format( "%D" ) );你只需要一兩分鍾來分析一下就明白了,這段JavaScript代碼實例化一個Java android.text.format.Time()對象,調用其set()方法,然後列印format後的返回值,是字元串「01/01/15」。 我知道你已經很激動了,先不要慌,讓我們再來看看iOS的代碼: 1234var alert = new UIAlertView();alert.message = "Hello world!";alert.addButtonWithTitle( "OK" );alert.show();這段JavaScript代碼實例化一個Objective-C UIAlertView類,設置它的信息屬性,然後調用它的addButtonWithTitle()和show()方法。當您運行這段代碼,你會看到hello word的警告框。 如果你已經熟悉了npm的使用,NativeScript模塊非常容易編寫,分發和使用。就個人而言,作為一個Web開發人員,原生的iOS和Android代碼讓我害怕,尤其是當Java / Objective-C的API文檔扔在一起的功能,它降低了我們跨平台開發的障礙。 還有HBuilder 也可以調用api

閱讀全文

與js觸發android相關的資料

熱點內容
新聞網站後台如何操作前台 瀏覽:539
在剪映app中怎麼查看視頻尺寸 瀏覽:9
linux文件成分包括 瀏覽:886
文件轉換免費的軟體 瀏覽:644
linuxwpsxlsx 瀏覽:482
小米手機怎麼上移動網路連接失敗怎麼辦 瀏覽:598
win10系統打開java 瀏覽:479
全日制編程什麼意思 瀏覽:447
筆記本創建區域網怎麼傳文件 瀏覽:871
怎樣查看id密碼 瀏覽:647
贛州極客晨星少兒編程怎麼樣 瀏覽:690
覺醒年代哪個app可以免費觀看 瀏覽:830
如何關閉win10觸摸屏幕 瀏覽:761
蘋果142不能傳文件 瀏覽:128
如何看歷史底部數據 瀏覽:230
怎麼在電腦上下軟體或安裝app 瀏覽:798
qq頭像電影截圖情侶 瀏覽:87
安卓的網路位置設置在哪 瀏覽:973
編程俠官網如何登錄 瀏覽:484
借貸王app怎麼樣 瀏覽:552

友情鏈接