安卓运行js代码,安卓 运行js

本文目录一览:

android里如何调用Js里的函数

Android中内置了WebKit模块,而该模块的Java层视图类就是WebView,所有需要使用Web浏览器功能的Android都需要创建该视图类对象显示和处理请求的网络资源。目前WebKit支持Http、Https、Ftp和JavaScript请求。

1、在Assets下放一个简单的html文件jstest.html

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=””

    

   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(“”);

btnShowInfo.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

mHandler.post(new Runnable() {

@Override

public void run() {

//调用 HTML 中的javaScript 函数

mWebView.loadUrl(“javascript:showMsg()”);

}

});

}

});

}

}

nodejs 在 android 系统里面怎么运行

每种语言都有自己的优势,互相结合起来各取所长程序执行起来效率更高或者说哪种实现方式较简单就用哪个,nodejs是利用子进程来调用系统命令或者文件,文档见nodejs.org/api/child_process.html,NodeJS子进程提供了与系统交互的重要接口,其主要API有:标准输入、标准输出及标准错误输出的接口。NodeJS子进程提供了与系统交互的重要接口,其主要API有:标准输入、标准输出及标准错误输出的接口child.stdin获取标准输入child.stdout获取标准输出child.stderr获取标准错误输出获取子进程的PID:child.pid提供生成子进程的方法:child_process.spawn(cmd,args=[],[options])提供直接执行系统命令的方法:child_process.exec(cmd,[options],callback)提供调用脚本文件的方法:child_process.execFile(file,[args],[options],[callback])提供杀死进程的方法:child.kill(signal=’SIGTERM’)用实例来感受一下,很有意思的,呵呵~~1、利用子进程调用系统命令(获取系统内存使用情况)新建nodejs文件,名为cmd_spawn.js,代码如下:复制代码代码如下:varspawn=require(‘child_process’).spawn;free=spawn(‘free’,[‘-m’]);//捕获标准输出并将其打印到控制台free.stdout.on(‘data’,function(data){console.log(‘standardoutput:\n’+data);});//捕获标准错误输出并将其打印到控制台free.stderr.on(‘data’,function(data){console.log(‘standarderroroutput:\n’+data);});//注册子进程关闭事件free.on(‘exit’,function(code,signal){console.log(‘childprocesseixt,exit:’+code);});

android 中如何去执行js脚本

按照给定的字符集存储文件时,在文件的最开头的三个字节中就有可能存储着编码信息,所以,基本的原理就是只要读出文件前三个字节,判定这些字节的值,就可以得知其编码的格式。

其实,如果项目运行的平台就是中文操作系统,

如果这些文本文件在项目内产生,即开发人员可以控制文本的编码格式,

只要判定两种常见的编码就可以了:gbk和utf-8。

由于中文windows默认的编码是gbk,所以一般只要判定utf-8编码格式。

Android调用js的问题

Android中可以使用WebView加载网页,同时Android端的java代码可以与网页上的javascript代码之间相互调用。

一 Android部分:

布局代码:

LinearLayout xmlns:android=”” xmlns:tools=”” android:layout_width=”match_parent” android:layout_height=”match_parent” android:focusable=”true” android:focusableInTouchMode=”true” android:orientation=”vertical” android:padding=”8dp” tools:context=”.MainActivity” LinearLayout android:layout_width=”match_parent” android:layout_height=”wrap_content” EditText android:id=”@+id/input_et” android:layout_width=”0dp” android:layout_height=”wrap_content” android:singleLine=”true” android:layout_weight=”1″ android:hint=”请输入信息” / Button android:text=”Java调用JS” android:layout_width=”wrap_content” android:layout_height=”wrap_content” android:onClick=”sendInfoToJs” / /LinearLayout WebView android:id=”@+id/webView” android:layout_width=”match_parent” android:layout_height=”match_parent” / /LinearLayout

Activity代码:

public class MainActivity extends AppCompatActivity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = (WebView) findViewById(R.id.webView); webView.setVerticalScrollbarOverlay(true); //设置WebView支持JavaScript webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl(“”); //在js中调用本地java方法 webView.addJavascriptInterface(new JsInterface(this), “AndroidWebView”); // //添加客户端支持 webView.setWebChromeClient(new WebChromeClient()); } private class JsInterface { private Context mContext; public JsInterface(Context context) { this.mContext = context; } //在js中调用window.AndroidWebView.showInfoFromJs(name),便会触发此方法。 @JavascriptInterface public void showInfoFromJs(String name) { Toast.makeText(mContext, name, Toast.LENGTH_SHORT).show(); } } //在java中调用js代码 public void sendInfoToJs(View view) { String msg = ((EditText) findViewById(R.id.input_et)).getText().toString(); //调用js中的函数:showInfoFromJava(msg) webView.loadUrl(“javascript:showInfoFromJava(‘” + msg + “‘)”); // webView.loadUrl(“javascript:showInfoFromJava()”); } }

二 网页代码

!DOCTYPE html html lang=”en” head meta charset=”UTF-8″ titleAndroid WebView 与 Javascript 交互/title /head body input type=”button” value=”分享” onclick=”f1()” input type=”text” id=”show”/ /body script function f1(){ AndroidWebView.showInfoFromJs(“hello”); } function showInfoFromJava(msg){ document.getElementById(“show”).value=msg; alert(1); } /script /html

注意: android 调用js代码可能会报错如下:

W/WebView(2088): java.lang.Throwable: A WebView method was called on thread ‘JavaBridge’. All WebView methods must be called on the same thread.

解决办法:

webView.post(new Runnable() { @Override public void run() { webView.loadUrl(“javascript:showInfoFromJava(‘” + msg + “‘)”); }});

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/159186.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-19 19:00
下一篇 2024-11-19 19:00

相关推荐

  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • JS Proxy(array)用法介绍

    JS Proxy(array)可以说是ES6中非常重要的一个特性,它可以代理一个数组,监听数据变化并进行拦截、处理。在实际开发中,使用Proxy(array)可以方便地实现数据的监…

    编程 2025-04-29
  • Python字符串宽度不限制怎么打代码

    本文将为大家详细介绍Python字符串宽度不限制时如何打代码的几个方面。 一、保持代码风格的统一 在Python字符串宽度不限制的情况下,我们可以写出很长很长的一行代码。但是,为了…

    编程 2025-04-29
  • Python基础代码用法介绍

    本文将从多个方面对Python基础代码进行解析和详细阐述,力求让读者深刻理解Python基础代码。通过本文的学习,相信大家对Python的学习和应用会更加轻松和高效。 一、变量和数…

    编程 2025-04-29
  • 仓库管理系统代码设计Python

    这篇文章将详细探讨如何设计一个基于Python的仓库管理系统。 一、基本需求 在着手设计之前,我们首先需要确定仓库管理系统的基本需求。 我们可以将需求分为以下几个方面: 1、库存管…

    编程 2025-04-29
  • Python满天星代码:让编程变得更加简单

    本文将从多个方面详细阐述Python满天星代码,为大家介绍它的优点以及如何在编程中使用。无论是刚刚接触编程还是资深程序员,都能从中获得一定的收获。 一、简介 Python满天星代码…

    编程 2025-04-29
  • 写代码新手教程

    本文将从语言选择、学习方法、编码规范以及常见问题解答等多个方面,为编程新手提供实用、简明的教程。 一、语言选择 作为编程新手,选择一门编程语言是很关键的一步。以下是几个有代表性的编…

    编程 2025-04-29
  • Python实现简易心形代码

    在这个文章中,我们将会介绍如何用Python语言编写一个非常简单的代码来生成一个心形图案。我们将会从安装Python开始介绍,逐步深入了解如何实现这一任务。 一、安装Python …

    编程 2025-04-29
  • 怎么写不影响Python运行的长段代码

    在Python编程的过程中,我们不可避免地需要编写一些长段代码,包括函数、类、复杂的控制语句等等。在编写这些代码时,我们需要考虑代码可读性、易用性以及对Python运行性能的影响。…

    编程 2025-04-29
  • Python海龟代码简单画图

    本文将介绍如何使用Python的海龟库进行简单画图,并提供相关示例代码。 一、基础用法 使用Python的海龟库,我们可以控制一个小海龟在窗口中移动,并利用它的“画笔”在窗口中绘制…

    编程 2025-04-29

发表回复

登录后才能评论