文章已收录到 github,欢迎 Watch 和 Star. 简介 从问题定位开始,到给框架(uni-app)提 issue.出解决方案(PR),再到最后的思考,详细记录了整个过程. 前序 当你在业务中不幸踩了开源框架的某些坑,这是你的不幸,但这同时也是你的幸运,因为这是你给自己简历中增加亮点的绝佳机会. 而给开源社区贡献 PR 是你证明自己技术侧拥有 P7 实力的绝佳方式,P7 的评判标准无非是业务和技术,业务上有收益,技术上有深度和广度(别人有的你能做的更好,别人没有的你能有). 这次整个过…
Hybrid APP之Native和H5页面交互原理 Hybrid APP的关键是原生页面与H5页面直接的交互,如下图,痛过JSBridge,H5页面可以调用Native的api,Native也可调用H5页面的方法或者通知H5页面回调 在Hybrid APP中,原生与H5的交互方式在Android和iOS上的实现是有异同的,原因是Android.iOS的通信机制有所区别,下面介绍原生和H5相互调用的方法 Native与H5交互的两种方式 原生和前端的交互有两种方式:url scheme以及Jav…
关于APP,原生和H5开发技术的争论 App的开发技术,目前流行的两种方式,原生和Html5.原生分了安卓平台和ios平台(还有小众的黑莓.死去的塞班就不说了),H5就是Html5. 目前争论不休的问题,在早先前争论CS,BS架构的软件系统是一样一样的.原先BS,CS对用户而言的区别是需不需要安装客户端.BS是通过浏览器来访问,用PC,平板,Win,Mac都能访问,用户不需要下载额外的客户端,同时运维和升级提供很大的便利.CS则需要下载客户端软件,安装,然后登录使用,升级的话,要么升级链接库,要…
在APP中内嵌H5页面,若页面上存在下载链接,没有任何反应,为什么呢? 原因是app中内嵌的H5页面是WebView解析的,什么是WebView呢? 在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件. WebView控制调用相应的WEB页面进行展示.当碰到页面有下载链接的时候,点击上去是一点反应都没有的.原来是因为WebView默认没有开启文件下载的功能,如果要实现文件下载的功能,需要设置WebView的DownloadListener,通…
本文已经不维护,新地址: http://www.cnblogs.com/dailc/p/8097598.html 说明 Hybrid模式原生和H5交互原理 目录 前言 参考来源 前置技术要求 楔子 Android.iOS原生和H5的基本通信机制 Android端 iOS端 原生和H5的另一种通讯方式:JSBridge 什么是JSBridge 为什么要用JSBridge JSBridge原理以及实现 前言 参考来源 前人栽树,后台乘凉,本文参考了以下来源 JSBridge-Web与Native交互…
项目中难免会用到自定义图标,那在uni app中应该怎么使用呢? 首先, 将图标目录放在static资源目录下: 在main.js中引入就可以全局使用了 import '@/static/icon-one/icon-one.css' 在页面中的使用: <view class="user-wrap-message-item"> 我的订单 <view class="arrow-right"></view> </view>…
| 在日常的移动端开发中,经常会遇到列表的展示,以及数据量变多的情况下还会有上拉和下拉的操作.进入新公司后发现移动端好多列表,但是在看代码的时候发现,每个列表都是单独的代码,没有任何的封装,都是通过vant组件,里面充满了过多的重复代码,在有bug或者有需求变更的时候,每次的改动都要对很多个相同逻辑的页面组件进行修改,于是花了一点时间,将其进行封装,发现还是节省了很多的时间.自己做一个记录. 前端提升生产力系列文章 1.前端提升生产力系列一(vue3 element-plus 配置json快速生…
uni-app是一个使用vue.js开发跨平台应用的前端框架. 开发者通过编写vue.js代码,uni-app将其编译到Ios,android,微信小程序等多个平台,保证其正确并达到优秀体验. Uni-app继承自vue.js,提供了完整的vue.js开发体验. uni-app组件规范和扩展api与微信小程序基本相同. 有一定vue.js和微信小程序开发经验的开发者可快速上手uni-app,开发出兼容多端的应用. uni-app提供了条件编译优化 pages.json: 配置页面路由,导航条,选…
Android精选源码 仿支付宝记账本功能,饼状图:数字键盘 android一款功能完善的电子书应用源码 Android自定义图标库,使用方便,扩展性强 android 3D立体无限旋转容器源码 android领取淘宝商品优惠券的APP源码 一款高仿腾讯漫画的漫画阅读类APP 基于react-native实现的客户端高仿one一个 android banner界面效果源码 Android优质博客 Android实现Rxjava2+Retrofit完美封装 去年的时候学习了Rxjava和Retro…
App的开发技术,目前流行的两种方式,原生和Html5.原生分了安卓平台和ios平台(还有小众的黑莓.死去的塞班就不说了),H5就是Html5. 目前争论不休的问题,在早先前争论CS,BS架构的软件系统是一样一样的.原先BS,CS对用户而言的区别是需不需要安装客户端.BS是通过浏览器来访问,用PC,平板,Win,Mac都能访问,用户不需要下载额外的客户端,同时运维和升级提供很大的便利.CS则需要下载客户端软件,安装,然后登录使用,升级的话,要么升级链接库,要么重新安装升级包,比较不方便,优势是很…
安卓和ios拦截h5点击事件,这个函数事件必须是暴漏在window下的 安卓和ios拦截普通h5函数: <div onclick = "show(),window.android.show()"></div> <script> function show(){ //如果需要传值,可以在show里添加参数,在上面的点击事件中直接进行传值就好 alert(1) } </script> vue函数并没有直接暴漏在window下,vue的点击事件…
1.无网络断开网络,显示404或则错误页面的是H5 2.页面布局a.在手机设置.开发者选项中开启显示布局边界功能:b.进入应用查看布局边界:c.原生应用可以看到各个控件的布局边界,H5只有整个页面的一个边界 (注:开发者工具是进入<关于手机>,找到<版本号>,有的手机这个版本号是在更多信息里,连续双击<版本号>,会提示开启开发者模式,再返回通用菜单,开启开发者选项)源生:H5: 3.长按页面长按页面,出现特殊标记.放大镜,复制,粘贴等等,甚至手机震动(Android),…
1.无网络断开网络,显示404或则错误页面的是H5 2.页面布局a.在手机设置.开发者选项中开启显示布局边界功能:b.进入应用查看布局边界:c.原生应用可以看到各个控件的布局边界,H5只有整个页面的一个边界 (注:开发者工具是进入<关于手机>,找到<版本号>,有的手机这个版本号是在更多信息里,连续双击<版本号>,会提示开启开发者模式,再返回通用菜单,开启开发者选项)源生:H5: 3.长按页面长按页面,出现特殊标记.放大镜,复制,粘贴等等,甚至手机震动(Android),…
H5+app项目,在HBuilderX中设置 详情参考官方 https://ask.dcloud.net.cn/article/64 给h5+app设置scheme值,作用:在其它app和h5页面中启动该app,如下 在manifest.json文件的"plus"->"distribute"->"apple"下添加urltypes节点数据如下: "plus": { "distribute": {…
https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 根据以上网页下载自己电脑相应的版本的微信开发者工具(目录自己创建),然后进行运行安装(建议下载安装) 微信小程序和app比较相似的方式,都可以这个模式进行开发 在H X创建好项目以后可以再谷歌浏览器运行也可以在微信开发者工具上运行(需要进行适配,这个路径就是你刚刚安装工具的那个路径) 这样你就可以运行查看你刚刚创建的项目的效果了(项目目录大致是相通的就不…
canvas 创建canvas绘图上下文. <canvas style="width: 300px; height: 200px;" canvas-id="firstCanvas"></canvas> uni.createCanvasContext(canvasId, this) uni.createCanvasContext(firstCanvas, this) 注意:在自定义组件下,第二个参数传入组件实例this,若不传,则无法显示…
webview.getSettings().setTextZoom(100);WebView加上这个设置后,WebView里的字体就不会随系统字体大小设置发生变化了. https://segmentfault.com/q/1010000006068362?_ea=1015158…
代码: <p>联系我们:<a href="tel://66666666666">66666666666</a> </p>…
<template> <scroll-view v-for="(card, index) in list" :key="index"> <view v-for =(item, itemIndex) in card"> {{item.value}} </view> </scroll-view> </template> GraceUi validatePhone() { // 验证手机号…
$emit 子组件传给父组件 $ref 父组件操作子组件 公用模板 uni-app全局变量的几种实现方法 const websiteUrl = 'http' const now = Date.now || function() { return new Date().getTime(); }; const isArray = Array.isArray || function(obj) { return obj instanceof Array }; export default { websi…
因为在项目中使用了大量的静态资源图片,使得主包体积过大, 而把这些图片全部放到服务器又有点麻烦,就想能不能把图片也分包,但是直接放在分包下的话导致图片资源找不到了, 在社区中看到大佬分享的十分有用,特此记录下来,原文章链接:https://ask.dcloud.net.cn/question/68773 首先在根目录新建文件vue.config.js vue.config.js中: const path = require('path') const CopyWebpackPlugin = re…
实现node端渲染图表的简单方案 这个题目有点小,本篇博客真正谈论的应该是服务端生成图表的简单方案,这里面有两个关键字:服务端 & 简单,我们知道基于js有很多的图表库,知名的如D3.echarts .highcharts等等,对于做数据可视化方向的同学可能自己都做过此类chart的研发,无论从零构建还是使用已有的轮子,基本上都是基于js在做,因为大部分数据可视化产品都是to B的产品. 但是有些场景下,我们还是会需要服务端的渲染结果的,比如,需要给用户发送订阅邮件,邮件中包含了图表类展示,我们…
H5 手机 App 开发入门:概念篇 http://www.ruanyifeng.com/blog/2019/12/hybrid-app-concepts.html 作者: 阮一峰 日期: 2019年12月10日 感谢 腾讯课堂NEXT学院 赞助本站,腾讯官方的前端课程 免费试学. 手机现在是互联网的最大入口.根据<中国互联网报告>,手机网民已经超过8亿,人均每天上网三个多小时. 毫不奇怪,手机应用软件(mobile application,简称 mobile App)的开发工程师供不应求,一…
前言 其实我们不管是从ios还是安卓都可以看出 原生app能内嵌H5的原因是因为有了webview这个app内嵌浏览器视图,从而使得我们可以开发html然后加载到app中(原理几乎跟pc端请求.加载.渲染是一样的),一般的当我们将h5开发好后就可以有两种方式请求到原生app中,一个是将html代码放到服务器上,一个是放在当前app项目目录中本地请求(一般用于调式). 因此,可以看到内嵌其实并不难,难就难在要适配.原生与web交互.数据传递等,当然我们也可以使用vue来开发H5界面 一.如何实现交…
很多APP使用H5编写,但APP链接的是远程的url的模式,导致了APP的用户体验极差,因为当你使用远程的H5 url的时候,打开H5页面的速度由网络决定,而不是由手机性能决定,假如用户在没有网络的地方打开APP,甚至出现迟迟打不开APP界面,出现白色空白页的情况,造成用户一直在等待. 其实APP使用H5,不应该使用远程的H5 url,而是应该使用file://本地路径的方法打开本地的H5页面,而不是使用http://远程路径的方式打开H5页面,这样APP的打开速度就可以跟原生相比,因为这样打开…
浏览器和app没有通信协议,所以h5不知道用户的手机释放安装了app.因此只能是h5去尝试唤起app,若不能唤起,引导用户去下载我们的app. 微信里屏蔽了 schema 协议,如果在微信中打开h5,则会提示用户在浏览器中打开. HTML代码 <div id="btn"> <a onclick="submitFn ><button>打开app</button></a> </div> js代码 functi…
用H5开发微信还是开发APP? 随着技术的飞速发展,HTML第五版技术标准的更新,在移动端,由于其相对较低的开发成本及强大的跨平台运行能力,越来越多的信息型产品也开始选择这样轻量级的H5页面进行快速迭代,同时借用微信等平台快速触达用户. 如今App的红利时期早己消失殆尽,大家下载应用的热情已经不再像刚开始那么火热,再加上那么多烧钱BAT产品大佬培养的用户习惯,没点补贴很难吸引用户.直接在应用市场推App的成本也很高,这时web的优势就体现出来了,它很轻,迭代还快,而且现在有微信这么好的入口.坐拥…
今天在清理手机上的应用时看到了“联名会员”这个“app”,我感觉只是个H5页面,不是一个原生的APP,但看起来和原生APP一模一样,心想,如果以后我开发了H5应用是不是可以把它搞成APP形式供别人下载,这样可以不用花两笔钱去开发(Android和ios分别开发),于是,心血来潮就在网上搜了,结果搜到了一门APP(http://app.applebyme.cn/),没有看其他的工具,就点进去了,发现还挺好用的,先注册一个用户账户,然后输入APP名称,上传APP的图标,H5地址等信息,就可以生成二维…
前言: 用appium做UI自动化,测试APP里面的H5和测试手机浏览器打开的H5的操作流程上是有所区别的.比如要测试APP内嵌的H5需要先操作appium启动APP,然后通过context切到webview模式,才能操作H5页面,但是如果测试手机网页的话就比较简单了,设置好浏览器比如选择Chrome,直接访问网址就好了. APP内嵌H5: 如何判断APP里面是否有H5呢, 使用uiautomaterview的时候发现页面元素含有webview,这就说明这个APP是混合应用,那么如何测试这个AP…
最近在公司开发一款微信小程序,按照客户需求用饼状图显示当前设备状态(开机.故障.关机),于是就在网上寻找各种资料,找了很多mpvue使用关于echarts绘制图表,最终功夫不负有心人,找到一篇关于mpvue使用echarts的文章,链接点击这里,需要的同学自行查看.这里面说明了如何使用echarts绘制图表,其中echarts的配置项option大家可以查看echarts的官方文档进行配置,请移步这里,点击对应的实例,里面就有详细的option配置,还有一些关于echarts使用参数及配置手册请…