- 浏览: 691322 次
- 性别:
- 来自: 杭州
-
文章分类
- 全部博客 (141)
- java (58)
- SQL (7)
- java开源 (2)
- javascript (3)
- struts2 (2)
- oracle (6)
- junit (1)
- js报表 (1)
- jQuery (5)
- 插件安装 (1)
- myeclipse (1)
- xfire (1)
- weblogic (1)
- hibernate (6)
- loading (1)
- jbpm (3)
- 物语 (0)
- android (14)
- spring (20)
- BigDecimal (1)
- view (1)
- 总结 (2)
- application (1)
- Netty (5)
- aop (1)
- redis (7)
- double (1)
- restful (1)
- cache (3)
- profile (1)
- redisTemplate (1)
- poi (3)
- excel导出 (1)
- mysql (7)
- group (4)
- replication (4)
- proxysql (1)
- windows (1)
- version (1)
- mongodb (2)
- RocketMQ (1)
- MQ (1)
- RSA (1)
- 日志 (2)
- ip (1)
- socket (1)
- hibernate-validator (1)
- delayQueue (1)
- spring-retry (1)
- rabbitmq (3)
- httpclient (1)
- tools (1)
- 增量发布 (1)
- web (3)
- spring-boot (5)
- druid (2)
- pageHelper (1)
- freemarker (1)
- RequestMapping (1)
- 性能优化 (2)
- springBoot (1)
- docker (2)
- 安全 (0)
- 国际化 (3)
- websocket (1)
- stomp (1)
- shiro (1)
- 网络安全 (2)
- 锁 (1)
- logback (1)
最新评论
-
changerzhuo_319:
谢谢大佬, 查了一天了没解决
Spring-boot构建多模块依赖工程时,maven打包异常:程序包xxx不存在 -
迪伦少校:
spring越来越优秀的同时,也越来越复杂
spring核心技术(1) -
hbxflihua:
ivi13 写道这种方式会有个问题,假如有个商户的交易量特别大 ...
使用spring-retry实现支付系统异步通知 -
ivi13:
这种方式会有个问题,假如有个商户的交易量特别大,通知全部失败, ...
使用spring-retry实现支付系统异步通知 -
ckxlnd:
挺好的 有借鉴意义
重写DispatcherServlet获取springmvc 所有RequestMapping的url
WebView引入页面及回调处理
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/white" android:orientation="vertical" > <!-- 头部和尾部为重用和统一风格 --> <!-- 头部 --> <include layout="@layout/jx_two_page_header"/> <WebView android:id="@+id/wvTicketOne" android:layout_width="fill_parent" android:layout_height="fill_parent" /> <!-- 尾部 --> <include android:id="@+id/footer" layout="@layout/jx_two_footer"/> </LinearLayout>
在Activity的onCreate方法中加载页面
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.ticket_one); /** * 在android 2.3以后进行了较为严格的限制 * 该类可以用来帮助开发者改进他们编写的应用。 * 并且提供了各种的策略, * 这些策略能随时检查和报告开发者开发应用中存在的问题 */ StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads().detectDiskWrites().detectNetwork() .penaltyLog().build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() .detectLeakedSqlLiteObjects().penaltyLog().penaltyDeath() .build()); Intent fromInent = getIntent(); ticketId = fromInent.getStringExtra("ticketId"); //是否管理员 String isManage = mPreferences.getString(Constants.USER_IS_MANAGE, String.valueOf(false)); //找到WebView控件 wvTicketOne = (WebView) findViewById(R.id.wvTicketOne); //设置为可访问页面JS,在Activity和页面直接互调时使用 wvTicketOne.getSettings().setJavaScriptEnabled(true); wvTicketOne.setWebViewClient(new WebViewClient()); //在onCreate 方法中调用WebView的loadUrl方法加载页面内容 wvTicketOne.loadUrl(Constants.URL_TICKET_ONE + ticketId+"&isManage="+isManage); //添加页面可访问的JS接口 wvTicketOne.addJavascriptInterface(new JavaScriptInterface(), "android"); // Activity间跳转:转到踏勘单 TextView takandan = (TextView) findViewById(R.id.tanKanDan); takandan.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(TicketOneActivity.this,TicketTanKanDan.class); intent.putExtra("ticketId", ticketId); startActivity(intent); } }); //返回按钮:这里做了最简单的处理,直接把当前Activity给关掉, //程序自动返回到上一个Activity(前提是上一个Activity没有销毁) ImageButton btnBack = (ImageButton) findViewById(R.id.cursor_back); btnBack.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); //隐藏(后退、1/1、前进、刷新)按钮 ImageButton cursor_left = (ImageButton) findViewById(R.id.cursor_left); cursor_left.setVisibility(View.INVISIBLE); ImageButton cursor_right = (ImageButton) findViewById(R.id.cursor_right); cursor_right.setVisibility(View.INVISIBLE); ImageButton cursor_refresh = (ImageButton) findViewById(R.id.cursor_refresh); cursor_refresh.setVisibility(View.INVISIBLE); TextView tv_infoTotal=(TextView)findViewById(R.id.infoTotal); tv_infoTotal.setVisibility(View.INVISIBLE); TextView tv_infoView=(TextView)findViewById(R.id.infoView); tv_infoView.setVisibility(View.INVISIBLE); TextView tv_infoNum=(TextView)findViewById(R.id.infoNum); tv_infoNum.setVisibility(View.INVISIBLE); }
在Activity中创建一个页面可访问的JavaScript接口,供页面调用
private class JavaScriptInterface { private MediaPlayer mediaPlayer; public JavaScriptInterface(){ mediaPlayer = new MediaPlayer(); } /** * 播放 * @param url 播放文件路径 */ public void playMusic(String url){ if(mediaPlayer.isPlaying()){ mediaPlayer.reset(); } try{ mediaPlayer.setDataSource(url); mediaPlayer.prepare(); mediaPlayer.start(); }catch (Exception e) { e.printStackTrace(); } } /** * 暂停 */ public void stopMusic(){ if(mediaPlayer.isPlaying()){ mediaPlayer.stop(); } } /** * GPS显示 * @param gps */ public void showGps(String gps){ Intent i = new Intent(TicketOneActivity.this, MapActivity.class); i.putExtra("gps", gps); startActivity(i); } /** * 提示信息 * @param msg */ public void showMsg(String msg){ if(CommonUtils.validateStr(msg)){ Toast.makeText(TicketOneActivity.this, msg, Toast.LENGTH_SHORT).show(); } if(CommonUtils.matchString(msg, "提交成功")){ finish(); } } }
上面的showMsg方法在页面被调用
//页面调用Activity中的JavaScriptInterface方法 function Msg(msg){ if (window.android){ window.android.showMsg(msg); }else{ alert(msg); } }
----------------------------------------------
在Activity中,也可以将处理的结果返回给页面。以下是一个在任务监听中将结果返回给页面JS的例子。
/** * 签名任务监听 * * @author lihua */ private TaskListener signTicketTaskListener = new TaskAdapter() { @Override public void onPostExecute(GenericTask task, String result) { //处理完成删除本地文件 FileHelper.delFiles(REC_DIR); JSONObject signInfo = (JSONObject) getApi().getBackResult(result, getApplicationContext()); String data = ""; String signdate = ""; try { data = signInfo.getString("result"); signdate = signInfo.getString("signdate"); } catch (JSONException e) { e.printStackTrace(); } String [] signArray = CommonUtils.splitByTag(data, "$"); String words = "",sign ="",gps="",voice="",gid = "",gdt=""; //add edit if(signArray!=null&&signArray.length>0) for (String s : signArray) { if(s!=null&&s.startsWith(Constants.START_TAG_WORD)) words = s.replace(Constants.START_TAG_WORD, ""); if(s!=null&&s.startsWith(Constants.START_TAG_SIGN)) sign = s.replace(Constants.START_TAG_SIGN, ""); if(s!=null&&s.startsWith(Constants.START_TAG_GPS)) gps = s.replace(Constants.START_TAG_GPS, ""); } String cbstr =""; //页面显示设置,调用页面名称为cbTicketSign的js函数 cbstr= "javascript:cbTicketSign('"+ words+"','"+ Constants.SERVER_FILE_CONTENT_TICKET + sign+"','"+ gps+"','"+ signdate+"'"+ ")"; System.out.println("cbstr:"+cbstr); wvTicketOne.loadUrl(cbstr); //关闭提示对话框 mDialog.dismiss(); } @Override public String getName() { return "Login"; } };
页面JS针对Activity的回调函数和JS的普通函数没有多大区别,以下是上面Activity中调用的JS函数。
//工作票签名回调 function cbTicketSign(sAttr, words, sign, gps ,voice , date){ if(sAttr=="workGroupSign"){ $('#workGroupSignLbl').html(words); $('#workGroupSignLbl').hide(); $('#workGroupSignImg').show(); $("#workGroupSignImg").attr("src","${root }"+sign); $("#workGroupSignGps").attr("src","${root}/images/ticket/gps.png"); $("#workGroupSignGps").bind("click",function(){ showGps(gps); }); } }
发表评论
-
Android 远程服务(remote service)
2012-05-29 18:08 9588Android 远程服务 Android远程服务(Remot ... -
百度地图 Android SDK 技术详解集锦
2012-05-21 15:46 2359【百度地图-android SDK】技术详解集锦 百 ... -
Android 避免重复提交
2012-05-11 13:19 7604不曾想,android系统也会有重复提交的问题。网上搜了下,基 ... -
Android 手写签名实例
2012-05-05 15:50 23565这篇文章本来想在一个月前就发布的,最近一直忙于国家电网手持 ... -
ScrollView 中嵌套ListView
2012-04-26 19:45 2079在ScrollView中嵌套使用ListView,Lis ... -
EditText 文本焦点事件
2012-04-19 12:12 9774焦点改变监听:setOnFocus ... -
ListView自定义adapter处理多事件
2012-04-13 16:31 9076使用过ListView 的开发人员都知道,ListView ... -
自定义类继承ImageView 实现多点图片触碰的拖动和缩放
2012-04-13 10:37 15663最近的一个android 项目中,客户要求在查看拍照上传的图片 ... -
android 嵌入服务端页面一 (抱歉,该篇无法用IE打开)
2012-04-05 23:59 2305<%@ page language="java ... -
android开发 ImageView显示文字
2012-03-25 15:35 20816我们将一张图片显示在屏幕上,首先要创建一个图片显示的对象Ima ... -
android开发 资料下载
2012-03-18 13:33 1798这里汇总了android的一些学习资料,有兴趣的可以下载看看。 ... -
Android开发 准备工作补充
2012-03-10 17:57 1351如果你用的IDE是myeclipse,直接通过插件 ... -
Android开发 准备工作
2012-03-10 17:39 1753Android 开发 前期准备: Eclipse3. ...
相关推荐
总结,"玩转Android和H5互调"涵盖了从选择合适的混合开发框架,到WebView的使用、Android与H5的交互实现,再到性能优化和安全防护等多个方面。掌握这些技术,能帮助开发者创建既具备良好用户体验又兼具开发效率的...
嵌入式八股文面试题库资料知识宝典-华为的面试试题.zip
训练导控系统设计.pdf
嵌入式八股文面试题库资料知识宝典-网络编程.zip
人脸转正GAN模型的高效压缩.pdf
少儿编程scratch项目源代码文件案例素材-几何冲刺 转瞬即逝.zip
少儿编程scratch项目源代码文件案例素材-鸡蛋.zip
嵌入式系统_USB设备枚举与HID通信_CH559单片机USB主机键盘鼠标复合设备控制_基于CH559单片机的USB主机模式设备枚举与键盘鼠标数据收发系统支持复合设备识别与HID
嵌入式八股文面试题库资料知识宝典-linux常见面试题.zip
面向智慧工地的压力机在线数据的预警应用开发.pdf
基于Unity3D的鱼类运动行为可视化研究.pdf
少儿编程scratch项目源代码文件案例素材-霍格沃茨魔法学校.zip
少儿编程scratch项目源代码文件案例素材-金币冲刺.zip
内容概要:本文深入探讨了HarmonyOS编译构建子系统的作用及其技术细节。作为鸿蒙操作系统背后的关键技术之一,编译构建子系统通过GN和Ninja工具实现了高效的源代码到机器代码的转换,确保了系统的稳定性和性能优化。该系统不仅支持多系统版本构建、芯片厂商定制,还具备强大的调试与维护能力。其高效编译速度、灵活性和可扩展性使其在华为设备和其他智能终端中发挥了重要作用。文章还比较了HarmonyOS编译构建子系统与安卓和iOS编译系统的异同,并展望了其未来的发展趋势和技术演进方向。; 适合人群:对操作系统底层技术感兴趣的开发者、工程师和技术爱好者。; 使用场景及目标:①了解HarmonyOS编译构建子系统的基本概念和工作原理;②掌握其在不同设备上的应用和优化策略;③对比HarmonyOS与安卓、iOS编译系统的差异;④探索其未来发展方向和技术演进路径。; 其他说明:本文详细介绍了HarmonyOS编译构建子系统的架构设计、核心功能和实际应用案例,强调了其在万物互联时代的重要性和潜力。阅读时建议重点关注编译构建子系统的独特优势及其对鸿蒙生态系统的深远影响。
嵌入式八股文面试题库资料知识宝典-奇虎360 2015校园招聘C++研发工程师笔试题.zip
嵌入式八股文面试题库资料知识宝典-腾讯2014校园招聘C语言笔试题(附答案).zip
双种群变异策略改进RWCE算法优化换热网络.pdf
内容概要:本文详细介绍了基于瞬时无功功率理论的三电平有源电力滤波器(APF)仿真研究。主要内容涵盖并联型APF的工作原理、三相三电平NPC结构、谐波检测方法(ipiq)、双闭环控制策略(电压外环+电流内环PI控制)以及SVPWM矢量调制技术。仿真结果显示,在APF投入前后,电网电流THD从21.9%降至3.77%,显著提高了电能质量。 适用人群:从事电力系统研究、电力电子技术开发的专业人士,尤其是对有源电力滤波器及其仿真感兴趣的工程师和技术人员。 使用场景及目标:适用于需要解决电力系统中谐波污染和无功补偿问题的研究项目。目标是通过仿真验证APF的有效性和可行性,优化电力系统的电能质量。 其他说明:文中提到的仿真模型涉及多个关键模块,如三相交流电压模块、非线性负载、信号采集模块、LC滤波器模块等,这些模块的设计和协同工作对于实现良好的谐波抑制和无功补偿至关重要。
内容概要:本文探讨了在工业自动化和物联网交汇背景下,构建OPC DA转MQTT网关软件的需求及其具体实现方法。文中详细介绍了如何利用Python编程语言及相关库(如OpenOPC用于读取OPC DA数据,paho-mqtt用于MQTT消息传递),完成从OPC DA数据解析、格式转换到最终通过MQTT协议发布数据的关键步骤。此外,还讨论了针对不良网络环境下数据传输优化措施以及后续测试验证过程。 适合人群:从事工业自动化系统集成、物联网项目开发的技术人员,特别是那些希望提升跨协议数据交换能力的专业人士。 使用场景及目标:适用于需要在不同通信协议间建立高效稳定的数据通道的应用场合,比如制造业生产线监控、远程设备管理等。主要目的是克服传统有线网络限制,实现在不稳定无线网络条件下仍能保持良好性能的数据传输。 其他说明:文中提供了具体的代码片段帮助理解整个流程,并强调了实际部署过程中可能遇到的问题及解决方案。
基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档~ 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档