WebView开发日志 sencha touch

谷歌眼镜应用开发:Sencha Touch框架实践指南 可穿戴设备开发面临独特的交互设计挑战,尤其是谷歌眼镜这类采用微型显示屏和混合输入方式的设备。HTML5框架通过响应式布局和组件化设计,能够有效解决超小屏幕信息展示与多模态交互问题。Sencha Touch作为移动端开发框架,其Carousel组件和事件系统特别适合处理眼镜的触摸板导航需求,而Cordova插件体系则能整合语音控制等硬件特性。在性能优化方面,需注意控制DOM复杂度并合理使用硬件加速。这类技术方案在智能眼镜、工业AR等场景具有广泛应用价值,本文以谷歌眼镜为例详解开发全流程。 阅读详情

WebView开发日志

  (2012-02-18 19:16:47)
标签: 

移动

 

android

 

iphone

 

ipad

 

webview

 

sencha


2012年2月18日
===============
昨天在sourceforge上创建了一个新的开源项目WebWiew。这是一个专为移动设备开发的Web界面框架。
目前,移动应用程序主要采用本地组件作界面开发,而WebView主张以HTML+JS组件开发移动应用的主界面。

这样的开发方式优点很多:
1)跨平台的统一应用界面成为可能。无需再使用Java或Object-c分别为不同的设备开发不同的界面代码。
2)UI界面甚至可以在线更新,无需重新构建工程与下载应用。
3)HTML远比XML更适合界面UI开发。以Android为例,XML不足以完全配置程序界面,还需辅之以Java代码;HTML则能直接嵌入JS与CSS,天生就适合作界面,而且HTML界面更简便直观(直接在浏览器中)开发与维护。
4)JS组件远比本地组件更容易开发,更容易换肤,更适应分辨率与比例。更有大量开发人员与组件库支持。
5)本地应用程序中无需再编写界面代码,只需提供功能性代码即可。极大的精简了代码量,开发与维护移动应用更快更容易。

缺点是:
1)浏览器内核的JS执行性能稍差;
2)不能与本地代码直接联调。(不过可以让界面单独在浏览器中调试,甚至可以提供一个JS版的设备模拟器)

上述idea,(两周前)我刚进入移动部门就和其他团队成员讨论会上提出:我们应基于HTML来开发移动应用,我相信未来这必将成为移动开发界的主流。从上周三开始正式学习Android开发,到昨天给大家演示了一个Android下的示例程序:JS组件如何在Java端注册,如何调用Java端功能接口;Java代码又如何调用JS组件接口方法。我给大家讲解了示例原型的代码,大家觉得API很简便好用、易扩展:Java端代码仅需要我自写的一个(继承自Android)WebView类即可。演示完程序后,我立即上sourceforge注册了一个新项目。想了想,项目名就叫做“WebView”吧:iPhone\Android都用的浏览器View控件名。

从初学Android到提出(在Android)创建框架不过一周多,是不是有些“疯狂”?
世界在这两周正为“林书豪”疯狂。为什么,移动开发界未来不会打破成见(本地应用一定要用本地组件开发界面),为"WebView"而疯狂呢?为什么不能让Google/Apple未来积极提升浏览器内核(webkit)的性能,而不是花心思在本地UI组件的升级上?

PS:今天下午搜索、下载了大量iPhone、Android的UI界面设计素材(280M)。下周,我会列出详细的开发计划,开始WebView的开发。

2012年2月19日
===============
上午起来,打算看一下昨天下载的PSD。发现以前安装的Photoshop CS3绿色版无法正确打开一些PSD文件,于是下载了CS4,就可以正常打开这些文件了(不过比CS3占更大内存,PS操作明显变慢)。

顺便定义WebView的组件术语:
Component: 组件
Widget: UI型组件,简称部件。
Control:功能型组件,简称控件。

2012年2月29日
===============
昨天下午,和团队成员去淘宝参加了一场沙龙:淘宝两年来的开发历程分享。他们的Android框架没有给我留下什么印象,架构能力和经验更没有印象,Android应用的前端能力更是可以忽略不计。除了,他们拥有庞大的开发团队和数百台测试机外。

我只关心一个问题:为什么淘宝android应用的WebUI比起NativeUI在整个应用页面的份额正在逐步下降。目前的3.0版,据他们说只有10%的页面是纯web的(1.0时这个数字是60-70%)。详细询问了他们的理由:1)web页面中操作多后内存占用多;2)和NativeUI的交互不太好;3)下载web资源占用很大网络带宽,且页面装载慢。

后两个问题,在我看来都不是问题。第一个问题,我想可以这么解决:通过WebView可以让JS调用NativeAPI释放缓存或内存,或者让WebView监听页面加载事件作自动化清理工作。


今天,开始用PS切割Android界面,搭建了一个HTML版Android手机“模拟器”的雏形。

2012年4月10日
===============
节前,注意到sencha touch在3月份刚发布2.0版本。试用了一下,UI效果相当不错,不愧是EXT团队开发。马上向团队推荐——打算购买其license,直接用于当前正在开发中的Android应用。

这个应用已经用Java代码完成一半以上的界面与功能,但越到后期越感到界面与样式的繁重修改、重构工作。所以,看到sencha写出的Example代码是那样的简洁清晰,用不着我说服谁,凭着工程师的高度理性,都明白我常说的那个“道理”——用Java和XML写界面那就是一场灾难,再加上Android的天生弱智级的文件管理与复杂低效的API设计,那就是一场浩劫。

在七天长假中,我花了足足三天的时间,阅读了sencha的几乎所有教程文档。边读边赞叹:数年不看Ext文档,但制作得越发出色了。凭借Ext团队在UI对象体系的丰富设计与制作经验,其移动UI框架也是世界级的。不过,在写应用代码的过程,也发现一些小BUG(比如,某些不该出现的空指针BUG以及Msg的参数设置不全等),不过不影响正常使用。

在UI方面,Ext+sencha绝对是JSUI+WebView的赶超目标(毕竟Ext拥有80人的开发团队,jack从05年就开始了)。在JSDK的下一个版本,我将对JSUI重点关照。在我看来,Ext在底层的线程对象以及反射/切面对象设计上,不及JSDK,至于既可以支持游戏开发又能支持组件开发上,那更是不及JS2D+JSGF的组合。

PS:
今天,将放假期间写好的新web应用移植到Android工程下。本以为很轻松,结果发现:在PC的chrome上正常浏览的Web页,在模拟器上用webview访问本地web页却死活都是空白页。于是花了一天的时间,一点点的怀疑,一点点查资料,一点点的排查,直到晚上12点,终于确定这是Ext.Loader.require方法的一个BUG:在android的WebView浏览器上,lazy-load本地JS文件时出现失败,不能成功加载所需类文件,导致Appliation无法顺利执行,所以出现空白页。所幸这个BUG不太严重(隐藏得相当深),可以通过直接添加<script>标签或者另写一个懒加载函数来解决。打算以后抽空整理所有的BUG,向sencha开发团队报告。

这个BUG在stackoverflow.com已有一个老外报出,但没有人给出正确原因(很多人提供的解决办法都是无效的)。这个BUG较少有人遇到,也较少有人深究,大致原因是:1)用sencha写正式应用的项目还不多,玩的比较多;2)绝大多数都是将sencha写的应用部署到internet上,此时用webview加载一个远程URL的sencha应用,不会有任何问题。

在查这个BUG的过程中,我也深刻感觉到,如果在WebView加载页面出现疑难问题,真是无法对JS加断点,无法调试(只能逐行排查)。幸好,chrome浏览器与webview使用同一内核,绝大部分JS问题可在PC浏览器上调试。
hwasan实例分析踩内存之一:camx进程stack tag-mismatch的三种解决方案 hwasan实例分析踩内存之一:camx进程stack tag-mismatch的三种解决方案。 阅读详情

相关推荐

【日常小结】项目Modbus RTU 协议

Modbus RTU(远程终端) 协议 一、前言 最近因为码跺宽度测量项目推广升级,更换了摄像头(换成了基恩士摄像头)和光栅(换成了施莱格05LCM系列光栅),导致原来的程序用不了了,然而这个软件升级的任务落到了我身上,作为机械非科班出身的我要学习TCP和Modbus RTU通信协议,也算是自我突破了。本文只对Modbus/RTU/HEX 进行简单的小结。 二、Modbus Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻

weixin_39681471的博客 832

UniWebView的更新日志【### 5.3.0 (28 Jan, 2023)】

UniWebView的更新日志【### 5.3.0 (28 Jan, 2023)】,这有助于你在疑惑要下哪个版本时查看

nmg10的博客 3009

显示模组Bonding IC气泡问题的诊断与优化策略

本文深入分析了显示模组Bonding IC气泡问题的成因与优化策略,涵盖IC两端剥离气泡、彩虹状水汽气泡、电极下方无规律气泡及IC输入端气泡等类型。通过工艺参数优化、材料存储处理、清洁环境控制及维修品特殊处理等多维度解决方案,有效降低气泡不良率。同时介绍了纳米改性ACF材料、激光辅助排泡技术等前沿解决方案,为触控显示行业提供实用参考。

weixin_26805597的博客 420

Google - Android 12 更新预览

本文主要摘取字Google官方文档关于 Android 12 Beta 版相关修改和变更介绍,手动整理,如有错误,欢迎指正

jamesyang1624的博客 3424

AI智能体项目管理框架agent-pm:从原理到实战的多智能体协作指南

在人工智能和自动化技术快速发展的今天,多智能体系统已成为实现复杂任务自动化的重要技术路径。其核心原理在于通过任务分解、角色分配和状态管理,让多个AI智能体像人类团队一样协同工作,从而突破单个模型的性能边界。这种架构的技术价值在于将软件工程中成熟的项目管理方法论引入AI领域,显著提升了自动化流程的可预测性、可观测性和可复用性。在实际应用场景中,多智能体协作框架能够高效处理从代码开发、文档撰写到数据分析等一系列任务,尤其适合需要多步骤、多专业协同的复杂项目。本文聚焦的agent-pm框架,正是这一领域的典型实践

weixin_42533910的博客 715

STM32开发实战--解决STM32CubeMX生成代码时钟初始化卡死问题

本文详细分析了STM32CubeMX生成代码在时钟初始化阶段卡死的问题,提供了多种解决方案,包括简单修改和稳健的等待机制。通过深入探讨HAL库的时钟初始化陷阱及硬件层面的根本原因,帮助开发者快速定位并解决STM32开发中的常见问题。

weixin_26965807的博客 443

android webview 更新,Android WebView缓存没更新解决方案

一:现象客户端加载过H5页面A,后来H5修改为A'发布之后,在很长一段时间内,客户端一直展示的是A,没有更新为A'。重启之后依然没有更新,只有清除缓存或者重装APP才会更新。二:分析根据现象得出,是由于webview的缓存导致页面一直没有更新。但是为什么没有更新?更新的机制是什么?应该怎么修改?首先看下客户端的缓存机制,CacheMode一共有五种CacheMode {// 如果页面没有强制任何特...

weixin_39896839的博客 4730

锂电池主动均衡理解

锂电池主动均衡方案总结: 来自:http://wenku.baidu.com/link?url=EWiyACZ3aLPhcOjI4FZL3uQ9d0FD6dBhADQSVQiaSmRHHATTdSig1Wy39JY7-ijCzbAEYG1ymz6Lv5zhGdZaStQSHzFt6v3h3_tMrJudz9O 目前车厂采用被动均衡方案的公司:(来自网页) 目前采用主动均衡的...

weixin_34365417的博客 2911

更新android系统自带webview,更新android系统自带webview

客户在使用我们定制pad过程中,遇到了个问题,就是默认浏览器滚动字体有些微的卡顿,如果没有对比的话说实话我也看不出来,下了个谷歌的浏览器,对比了相同的页面,网页字体滚动,的确有一些区别,所以客户要求更新我们系统的webview控件版本。然后通过百度知道了一些webview和android系统的对应关系,简单说android系统默认情况下webview和系统版本是一一对应的,具体对应关系可以百度,然...

weixin_42197110的博客 1万+

【RT-DETR实战】159、改进九:知识蒸馏从YOLOv8教师模型学习

摘要: 本文探讨了知识蒸馏在RT-DETR目标检测模型中的应用挑战与实践经验。作者以YOLOv8作为教师模型,针对特征对齐、损失函数设计和训练策略等核心问题,提出了适配器模块、动态权重调整和多阶段训练等优化方案。文章重点分析了教师模型选择、特征图匹配、损失函数组合等关键环节的实战技巧,并总结了蒸馏模型部署时的注意事项。通过实验验证,作者指出知识蒸馏应关注模型"思维方式"的迁移而非简单特征复制,并强调合理评估指标和教师模型选择的重要性。最后,作者分享了技术迭代中的边际效应认知,为工业场景下的模型优化提供了实用

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 268

【报错解决】彻底解决 MySQL 登录报错 ERROR 1045 (28000)

MySQL 报错 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 通常是由于用户名或密码错误、权限不足、服务未启动或配置文件异常导致的。通过检查并确认密码、重置 root 用户密码、授予完整权限、校验配置文件以及确保 MySQL 服务正常运行,可以彻底解决该问题。掌握这一流程不仅能够恢复 root 登录,还能保障数据库的安全性与稳定性。

博客 1754

[RK3399][Android7.1.1]Webview:更新webview到最新版本

测试平台 Platform: RK3399 OS: Android 7.1.1 现象 首先查看当前webview的版本,使用如下命令查询 adb shell am start -a android.intent.action.VIEW -d https://liulanmi.com/labs/core.html 可以得知当前的版本为52.0.2743.100 分析 查看系统后发现现在的webview已经被封装为单独的apk,放置在/system/app/webview/webview.apk路径下。

weixin_39966398的博客 1万+

C# + NAudio:构建支持实时音频处理的语音聊天应用(含回声消除)

本文介绍了如何利用C#和NAudio库开发实时语音聊天应用,重点实现回声消除功能。首先概述了NAudio库在音频处理中的作用,包括音频录制、播放和实时处理能力。然后详细讲解了构建基础语音聊天应用的过程,包括麦克风录制和扬声器播放的实现。接着深入探讨了回声消除的原理和实现方法,提出通过比较麦克风输入和扬声器输出的音频信号来消除回声,并给出了核心代码示例。最后,文章还讨论了性能优化方向,如多线程处理和网络传输扩展。该方案为开发高质量实时语音应用提供了实用参考。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1013

Android查看web日志,详解Android WebView监听console错误信息

根据需求,我们要拿到h5的错误信息,并将error信息进行上报。查询了下Android WebView的API发现了WebChromeClient这个方法可以满足要求:@Overridepublic boolean onConsoleMessage(ConsoleMessage consoleMessage) {//获取log的级别switch (consoleMessage.messageLev...

weixin_42511217的博客 3266

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

WebView 打印web端的console日志(如console.log)

在Android Webview中如何打印web端的console日志呢? 1.调试Web应用程序 Debugging Web Apps 如果您使用运行Android 4.4或更高版本的设备测试您的网络应用,则可以WebView使用Chrome开发者工具远程调试您的网页,同时继续支持旧版Android。有关更多信息,请参阅Android上的远程调试 2.利用WebChromeClient o...

huch的博客 2万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Webview的更新问题

Webview的更新问题    整个结构是这样的,查单词后动态显示词典内容,需要网页,也就是webview动态加载js文件css文件,和html内容。     原来的设计是在webview中加上JavaInterface,在Html加载时调用,回到程序的主线...

Viva940301的博客 325

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Android安卓自带的 WebView 浏览器内核更新

Android 安卓自带 WebView 浏览器内核更新教程

aken 8万+

关于webview的错误日志

错误日志1: Using WebView from more than one process at once with the same data directory is not supported 项目中开启了两个进程: com.xxx.app.test 和 com.xxx.app.test.pushcore 错误原因: Android P行为变更,不可多进程使用同一个目录webView,需要为不同进程webView设置不同目录 解决办法: Android 9 prohibit sharing Web

u010194271的博客 2285

记录 Android WebView 开发过程的坑和解决方法

这篇主要总结 WebView 相关的疑难 bug,由于 Android 版本严重碎片化,在使用 WebView 的时候也会遇到各种个样的坑,特别是 4.4 之后更换了 WebView 内核,4.2 以下有部分漏洞,所以想把经历过的 WebView 这些坑记录下来,仅供参考。 1、 java.lang.NullPointerException at android.webkit.Access...

贵公子丶笔记 3518

webview的三种使用方式

同步方式: 1 解析本地HTML文件 {      NSString * htmlPath =[[NSBundle mainBundle] pathForResourse:@"index" ofType:@"html"];      NSURL *bundeleUrl =[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]];

LarrySai 909

iOS-加载webview,打印网页的console.log

iOS开发的时候,用webview加载一个网页。问题就是我们想看输入的日志调试东西的时候,但是网页端的日志只能打开safari开发中心调试了。 于是乎有这样一个方法就可以看见h5端输出的日志 - (void)catchJsLog{ if(DEBUG){ JSContext *ctx = [self.webView valueForKeyPath:@"document...

whuizhou的专栏 1万+

electron开发跨多平台Mac、Windows 和 Linux的桌面应用之webview标签和shell模块(四)

参考文档:https://electronjs.org/docs/api/webview-tag. 1. 在一些旧的eletron版本的中需要在主进程中引入webviewTag=true属性,才会显示webview标签。 win = new BrowserWindow({ width: 800, height: 600, webPreferences: { ...

斗师——Ace 1097

Android官方文档之Web Apps调试

概览 你可以使用控制台的Javascript方法调试你的web app如果是在定制的WebView中调试,你需要实现一个回调方法来处理调试信息 文档内容 在Android Browser中使用控制台API 在WebView中使用控制台API 参考 调试 如果你是在为Android开发web应用,那么,你可以使用控制台(console)的Javascript API

WebAppTrend 3420

[Phonegap+Sencha Touch] 移动开发22、安卓4.0.X的webview或自带浏览器中,去除输入框外面的蓝色边框

安卓4.0.3中,有焦点的输入框是这样的,

小桥流水丿小溪 2585

Android设备WebView打印Console Log

Android设备WebView打印Console Log  收藏 通常状况下,添加如下代码即可: mWebView.setWebViewClient(new WebChromeClient {      /*android 低版本 Desperate*/     @Override     public void onConsoleMessa

a461408739的博客 7245

Android中WebView的使用

WebView基本用法 WebView是一个用来显示网页的控件,它包含了一系列强悍的网页获取与解析功能,稍加修饰就可以做成一个自己的浏览器。 如下是一个简单的示例。 1 wvSelSrc = (WebView) findViewById(R.id.webViewSelectSrcUrl); 2

bat1992的博客 730
上一篇: 自适应网页设计(Responsive Web Design)
下一篇: Sencha touch 初体验
OmelasShell
博客等级 码龄15年 5粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值