android 和h5互调步骤

1. Android 中调用JS

假如:H5页面中有一段如下JS代码

function h5Test(str){
  xxxx...
  xxxx...
}

Android中调用方式如下:

步骤一: 启动支持JS

WebSettings ws = getSettings();

ws.setJavaScriptEnable(True);

步骤二: 加载网页

webView.loadUrl(url);

步骤三:调用网页中的js, 注意此处函数名要和 上面js代码中函数名完全一致

webView.loadUrl("javascript:changeTitle(‘Android调用js‘)");

2.JS调用Android

假定点击H5网页上的一个按钮,跳转到Android代码中的某个Activity页面

步骤一:启动支持JS

WebSettings ws = getSettings();

ws.setJavaScriptEnabled(true);

步骤二:给webView添加JS接口类, 该类封装了原生的操作. 参数2是JS中的实体类名字,需要和js代码中名字保持一致

webView.addJavascriptInterface(new JsInterface(),"js2android");

H5页面见到js2android 就会到JsInterface()类中找相应方法.

步骤三:编写接口类的内容

public class JsInterface{
  @JavascriptInterface  //这个注解一定要带上
  public void selectPic(){
    Intent intent = new Intent(WebViewActivity.this,GetPicActivity.class);
    startActivityForResult(intent,100);
  }
}

步骤四:H5页面中JS对应代码

function appSelectPic(){
  javascript:js2android.selectPic();
}

通过以上4个步骤,就可以做到点击H5页面的一个按钮,跳转到 对应Activity

时间: 2024-10-22 02:21:49

android 和h5互调步骤的相关文章

Android与H5互调

前言 微信,微博,微商,QQ空间,大量的软件使用内嵌了H5,这个时候就需要了解Android如何更H5交互的了:有些外包公司,为了节约成本,采用Android内嵌H5模式开发,便于在IOS上直接复用页面,最终解决成本. 为什么学android也要学h5? Android很多软件都有内嵌H5的,有什么用处.优势?节约成本,提高开发效率. 实现的原理是什么? 本质是:Java代码和JavaScript调用 案例一:Java与Js简单互调 首先,在Android代码中加载H5页面: private v

Android与H5互调(通过实例来了解Hybrid App)

前些日子,Android原生开发将被取缔的吵得火热,JavaScript是能做一个完全的APP,但只使用JavaScript做出来的APP也不会牛逼到哪里去.最好的是混合(Hybrid)开发,在需要的时候使用JavaScript,各有好处. Hybrid App中原生页面 VS H5页面:http://www.jianshu.com/p/00ff5664e000 原生页面和H5页面的优劣势分析: 原生页面 优势: (1)运行速度比较快 (2)能使用设备的底层功能,如摄像头.方向传感器.重力传感器

原生Android结合H5混合开发小结

混合开发概述 微信,微博以及现在市面上大量的软件使用内嵌了H5页面:有些外包公司,为了节约成本,采用Android内嵌H5模式开发,便于在IOS上直接复用页面, 从而提高开发效率. 实现的原理: 本质是:Java代码和Javascript调用 H5页面,只是Html的扩展,Javascript用来处理页面的逻辑 Android和H5互调案例: 一.java调用js WebView的基本设置: private void initWebView() { webView = new WebView(t

Lua学习 2) —— Android与Lua互调

2014-07-09 一.Android类调用lua并回调 Android调用Lua函数,同时把类作为参数传递过去,然后再Lua中回调类的函数 调用lua mLuaState = LuaStateFactory.newLuaState(); mLuaState.openLibs(); mLuaState.LdoString(KKLua.loadAssetsString(mContext, "lua/swallow.lua"));//将lua转换为字符串 mLuaState.getFie

Android自定义控件的实现步骤(二)

前天已经写了一个关于自定义控件的实现步骤的博客,这个是附上代码的详细版本 首先,我们得新建一个attrs.xml的资源文件,在上面添加我们将要自定义控件的额外属性,就是自定义控件的自定义属性,具体代码如下: <resources> <declare-styleable name="TestView"> <attr name="textColor" format="color"></attr> <

Unity中加入Android项目的Build步骤

简介: 有的项目需要在Android中加入Unity功能,例如ANDROID应用中嵌入Unity3D视图(展示3D模型) 有的项目需要在Unity中加入Android功能,例如3D语音天气球(源码分享)——创建可旋转的3D球 由于Android中的功能和代码只能当作一个Unity插件,需要在Unity进行最终的Build后生成apk文件运行. 所以无论上面两种情况都涉及了在Unity中加入Android项目的Build步骤: 步骤: 1.确保Android工程代码正确,然后在Eclipse中bu

Android APK 反编译步骤

dex2jar和jd-gui工具下载,链接:http://yun.baidu.com/share/link?shareid=2888715259&uk=1377615098 解压APK文件得到 classes.dex文件 将classes.dex文件拷贝到dex2jar-0.0.9.13目录,在命令行下进入dex2jar-0.0.9.12目录 运行 dex2jar.bat classes.dex命令,生成classes.dex.dex2jar.jar. 运行jd-gui.exe,用jd-gui软

C++/C#互调步骤

一.C#调用C++ dll步骤(只能导出方法): * 1. c++建立空项目->源文件文件夹中添加cpp文件和函数 * 2. c++属性设置中,配置类型设置为动态库dll,公共语言运行时支持改为/clr * 3. c#引用c++的dll * 4. c#声明c++的方法,并添加 DllImport特性 * 5. c#工程属性设置为:目标平台x86 * 6. 注意方法的类型匹配 * 7. 引发PInvokeStackImbalance异常:注意:C++的"_declspec"和C#的

Android自定义控件的实现步骤(一)

今天下午,研究了一下Android的自定义控件该怎样实现,算是有了一点眉目,现在总结下,当做加深记忆,也许对那些刚开始学Android的人会有点帮助 以下是我总结出来的步骤: 1. 首先,要创建一个attrs的xml文件,来储存要自定义控件的属性,就是创建一个xml文件,然后使用<declare-styeable>声明控件名,然后用<attr>标签实现属性的名字和对应的类型. 2. 创建相应的类,继承要自定义的控件类,然后实现相应的构造方法,定义与属性相关的变量以及对应的get和s