您的位置:

安卓调试apk的js,apk运行

安卓调试apk的js,apk运行

更新:

本文目录一览:

在android中怎样调用本地js文件里的方法并得到返回值

在android中调用本地js文件里的方法并得到返回值其方法如下:Android中内置了WebKit模块,而该模块的Java层视图类就是WebView,所有需要使用Web浏览器功能的Android都需要创建该视图类对象显示和处理请求的网络资源。目前WebKit支持Http、Https、Ftp和JavaScript请求。下面是在Android中调用JavaScript方法以及如何在js中调用本地方法。1、在Assets下放一个简单的html文件jstest/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方法"/ /RelativeLayout3、然后是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();@Overrideprotected 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() {@Overridepublic void onClick(View v) {mHandler.post(new Runnable() {@Overridepublic 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"/

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 + "')"); }});

android 中怎么执行js脚本

android要执行脚本,只有通过本地的webview打开脚本页面。

调用步骤

1、设置webview支持脚本

webSettings.setJavaScriptEnabled(true);

2、打开脚本页面

mWebView.loadUrl("");//这里打开该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

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()");

}

});

}

});

}

}

android studio怎么调试apk

调试基础

一般来说我们有两种办法调试一个debuggable的apk;其一是下好断点,然后用debug模式编译安装这个app;其二是 attach process,在Android Studio里面就是这么一个对话框:

Attach Process

第二种方法比较常用,我们可以在启动apk之后,直接下断点,然后attach process到制定进程,条件触发之后就可以直接进入调试模式。

其他的一些单步执行,step into, step out, force step into 等就不提了;基本的跟踪手段。

还是提一下,下断点最简单的办法,是在代码编辑器的左侧,行号右边鼠标点击一下即可。

Evaluate Expression

安卓调试apk的js,apk运行

本文目录一览: 1、在android中怎样调用本地js文件里的方法并得到返回值 2、Android调用js的问题 3、android 中怎么执行js脚本 4、android里如何调用Js里的函数 5、

2023-12-08
安卓c语言apk,安卓c语言内存读写辅助

2022-11-29
java的打包apk,java的打包与解包

2022-11-22
php怎么下载安卓apk文件,手机怎么下载php文件

2022-11-28
ADB安装APK全面指南

2023-05-16
安卓应用安装教程:如何安装APK文件

2023-05-14
java模拟器安卓版,Java模拟器安卓版

2023-01-03
安卓环境搭建详解

2023-05-20
java模拟器安卓版,java模拟器安卓版最新版

2022-11-21
安卓java模拟器,安卓java模拟器app

2023-01-03
js打包ios(JS打包成安卓)

本文目录一览: 1、html+js做的网站,想做成APP怎么封装呢 2、iOS打包Framework静态库,从Framework里加载本地html,怎么加载 3、用这个auto.js编程软件写好脚本后

2023-12-08
java虚拟机安卓版apk下载(java虚拟机下载地址)

2022-11-16
安卓stdio详解

2023-05-17
golang安卓脚本,golang安卓程序开发

2022-11-27
安卓运行js代码,安卓 运行js

本文目录一览: 1、android里如何调用Js里的函数 2、nodejs 在 android 系统里面怎么运行 3、android 中如何去执行js脚本 4、Android调用js的问题 andro

2023-12-08
ADB Install安装APK详解

2023-05-21
ADB安装APK-详细阐述

2023-05-21
Apk解包 - 快速提升应用优化效果的方法

2023-05-21
从多个方面详细阐述apk重新签名的过程

2023-05-21
kivy打包apk指南

2023-05-23