WEB开发者之混合开发APP(七), 预加载和自定义事件

【零基础学会uniapp系列】5、添加新的页面 page 在HBuilderX中新建一个页面,新建页面的步骤: 可直接从项目上右键或者从某个文件夹上面右键,选择新建页面 输入项目名称和项目使用的模板 选择是否在pages.json中进行注册,注意:所有需要单独显示的页面,都必须在这里进行注册,否则无法显示。 所有用到的页面都需要在pages.json中进行注册 在程序中,如果有多个页面需要互相跳转,则可以使用下面的几个命令来实现: uni.navigateTo 保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。 阅读详情

混合开发App同h5页面开发,完全不同之一就是预加载技术。因为不可能所有的页面打开时,都需要重新创建,
(1) 每次重新创建页面,耗费性能;
(2)新建页面时,如果加载耗时较长,则会出现类似白屏问题,体验极差。

预加载和自定义事件,就可以解决这类问题。
(1)通过页面预加载,提前将页面内容加载完毕;
(2)触发页面的自定义事件,处理数据;
(3)打开页面,数据已经处理完毕,速度快。

1. 预加载

mui提供了2种方式的预加载。


1.1 preloadPages

mui.init({
  preloadPages:[
    {
      url:prelaod-page-url,
      id:preload-page-id,
      styles:{},//窗口参数
      extras:{},//自定义扩展参数
      subpages:[{},{}]//预加载页面的子页面
    }
  ],
  preloadLimit:5//预加载窗口数量限制(一旦超出,先进先出)默认不限制
});

该种方案优缺点如下:
(1)可预加载多个页面,但不会返回预加载每个页面的引用,若要获得对应webview引用,还需要通过plus.webview.getWebviewById方式获得;
(2)mui.init是异步执行的,执行完mui.init方法后,立即获得对应webview引用,可能会失败,例如:

mui.init({
  preloadPages:[
    {
      url:'list.html',
      id:'list'
    }
  ]
});
var list = plus.webview.getWebviewByid('list');//立即执行的话,这里可能返回空;

1.2 mui.preload

var page = mui.preload({
    url:new-page-url,
    id:new-page-id,//默认使用当前页面的url作为id
    styles:{},//窗口参数
    extras:{}//自定义扩展参数
});

该方案的优缺点:
(1)可立即返回对应webview的引用;
(2)一次仅能预加载一个页面,若需加载多个webview,则需多次调用mui.preload()方法;

2. 自定义事件

2.1 定义

//自定义事件,获取商品详情
window.addEventListener('productInfo',function(event){
    id = event.detail.id;  //获取自定义事件传入的参数,event.detail.xx 

    var data = {id:id};
    console.log("产品详情输入数据:"+JSON.stringify(data));
    mui.post(productInfoURL,data,function(data){
        console.log("产品详情输出数据:"+JSON.stringify(data));
        if(data.success){
            //数据处理
            $("#imgpic").attr("src",data.img); 
            $("#description").html($("#hdiv").text());
        }
    },'json');
});

2.2 调用

加入以上自定义事件在页面productdetail.html中,以下代码是在a.html中调用的方法:

var detailPage = mui.preload({
                url:'productdetail.html',
                id:'productdetail.html'
});
//触发详情页自定义事件
mui.fire(detailPage,'productInfo',{id:id});  //id是传入的商品id

//打开详情页面
mui.openWindow({
    id:"productdetail.html"
});

懂Html就能开发App,博文持续更新,博主QQ:260737830!

【006安卓开发方案调研】之大厂APP混合开发方案 国内大厂的混合开发解决方案已形成四大技术方向Flutter主导的跨平台架构(性能接近原生,适合高频迭代模块)React Native动态化方案(适合已有前端技术栈的团队)WebView增强型H5容器(低成本快速迭代,需内核性能优化)动态化热修复体系(AndFix、Tinker等实现无感更新)前端技术深度渗透:超过60%的头部App采用WebView或小程序容器实现动态化,例如微信小程序日活超4亿,京东60%功能模块通过H5实现。未来趋势将聚焦多框架融合(如Flutter与Compose互操作)和。 阅读详情

相关推荐

HBuilderX网站打包APP实战:从WebView原理到混合开发全流程

WebView作为移动端渲染网页的核心组件,其本质是一个内置于应用中的浏览器内核,它通过JavaScript Bridge实现了网页与原生系统能力的通信。这项技术为混合开发提供了基础,其核心价值在于能以较低成本将现有Web业务快速扩展至移动端,尤其适用于内容展示、企业工具和电商服务等场景。在工程实践中,HBuilderX通过封装5+ Runtime或uni-app运行时框架,简化了开发流程,并支持通过postMessage等机制实现网页与原生页面的双向通信。本文聚焦于利用HBuilderX将网站快速打包为原

weixin_30460489的博客 424

uniapp页面路由跳转方式

解决方法:一开始我只在h5页面中答题跳转到抽奖页面时设置了uni.reLaunch,并未生效,应在小程序跳转到h5页面时将wx.navigateTo换成wx.reLaunch即可解决。被预载的页面,在打开时速度更快,预加载 /pages/test/test 对应的 js 文件,不执行页面预渲染逻辑。保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。关闭当前页面,跳转到应用内的某个页面。关闭所有页面,打开到应用内的某个页面。相当于是关闭所有页面,然后跳转到指定页面。

Ma_jiao的博客 2001

H5秒变App实战:从直接打包到WebView混合开发,两种主流方案深度解析

本文深度解析H5秒变App的两种主流方案:5+App直接打包和UniApp WebView混合开发。通过实战案例和技术细节,帮助开发者快速实现H5到App的转换,提升用户留存率和性能体验,同时扩展原生功能如扫码、指纹认证等。

weixin_29001683的博客 259

Uniapp零基础开发学习笔记(8) -页面跳转组件及API练习使用

页面跳转组件及API的练习使用

qq_43662503的博客 1924

Hybrid App开发实战:从京东淘宝看混合开发的优缺点与适用场景

本文深入探讨Hybrid App开发在京东、淘宝等大型应用中的实践,分析混合开发的技术本质、主流框架(如React Native、Flutter、Ionic)的优缺点及适用场景。通过性能对比和实战案例,揭示Hybrid方案在动态更新、跨平台一致性等方面的优势,并提供性能优化策略,帮助开发者做出更明智的技术选型决策。

gin88的博客 220

深入理解iOS WebView Hybrid开发中的预加载技术

本文还有配套的精品资源,点击获取 简介:本文探讨了iOS中Webview与Hybrid开发相结合的技术及其预加载策略。Webview组件使得iOS应用能够展示网页内容并与原生功能集成。Hybrid开发模式利用JavaScript和原生语言的融合,提升应用性能。预加载技术通过提前下载和解析资源来优化用户体验和减少加载时间。文章还介绍了预加载的方法,如启动时加载资源、利用HTM...

weixin_35750747的博客 1778

顶尖页面性能优化跃升之道:uniapp首屏加载性能极致优化策略权威指南(白屏现象终结攻略)

页面加载性能优化旨在减少用户等待时间,提升浏览体验。页面加载性能优化的策略原理主要围绕提高加载速度、优化用户体验两个核心目标展开。关键策略包括:压缩代码和资源,实现资源懒加载与异步加载,利用缓存策略,优化图片和媒体资源,采用CDN加速,以及合理安排页面结构与资源加载顺序,确保首屏、页面快速渲染。

JINGWHALE 6159

Ubuntu24.04LTS上Ollama GPU加速配置指南:从驱动安装到多卡均衡负载

本文详细介绍了在Ubuntu24.04LTS系统上配置Ollama GPU加速的完整指南,包括NVIDIA驱动安装、CUDA Toolkit配置、Ollama在线与离线安装方法,以及多GPU负载均衡优化策略。通过实战案例和性能调优建议,帮助开发者充分利用硬件资源提升大型语言模型的运行效率。

weixin_29255731的博客 760

推荐使用:PreloadPageView - 提升你的滑动页面体验

推荐使用:PreloadPageView - 提升你的滑动页面体验 preload_page_viewFlutter pre-load PageView widget项目地址:https://gitcode.com/gh_mirrors/pr/preload_page_view 1、项目介绍 在移动应用中,提供流畅的滚动体验至关重要。PreloadPageView 是一个专为 Flutter 设...

gitblog_00033的博客 697

对于基本的捕鱼游戏设计思路(五)——鱼

今天讲捕鱼游戏里鱼的部分,也是比较关键的一部分。 一步一步来,先分析游戏,首先鱼是从屏幕外生成,然后它有个移动的动作,而且分为不同的类型。 然后就可以进入代码部分,首先设置一个计时器,控制时间生成鱼,而鱼分种类,所以就用到随机函数,随机输出一个值,传入switch语句,从而生成不同的鱼。 void GameScene::xiaoyuupdate(float dt){ Size visibl

Cineze的博客 1万+

ICT调试技巧:从基础到实战的全面指南

本文提供了一份全面的ICT调试技巧指南,涵盖从基础认知到实战应用的全过程。详细解析了ICT设备硬件结构、程序文件构成,并重点讲解了调试界面的核心参数与高效快捷键。通过跳线、电阻、电容及二极管等常见元器件的实战调试案例,分享了参数设置要点与典型问题解决方案,帮助工程师快速掌握ICT调试核心技能,提升测试效率与准确性。

weixin_29202213的博客 342

WEB开发者之混合开发APP(四),index.html 首页

App项目的首页,index.html.首页显示效果和样式的部分,不在此讨论,本项目采用的是mui框架。    mui框架(http://www.dcloud.io/mui.html)也是dcloud公司团队的框架,使用该框架的优点,1,以iOS 7为基础,补充部分Android特有控件,显示为原生UI效果;2.mui的窗口的管理,事件管理,ajax,上拉加载,下拉刷新等功能强大。笔者认为,第2点...

KnuthZ的博客 1952

图像特征(一)——颜色特征(颜色直方图,颜色矩,颜色集,颜色聚合向量和颜色相关图)

本文主要是为了更好地理解图像特征,理解各方法的原理。转载请注明出处https://mp.youkuaiyun.com/console/editor/html/105090183 图像模式识别的一般步骤为:输入图像--图像预处理--特征提取--特征选择--图像分类--输出结果。 图像特征主要有:颜色特征、形状特征、纹理特征和空间关系特征。 本文主要介绍颜色特征,并给出matlab上实现的demo。 颜...

gloria_iris的博客 3万+

WEB开发者之混合开发APP(十二), 页面间的参数传递方式

混合开发app中,页面之间的参数传递方式,主要使用一下两种。 1. 新建页面的参数传递 传递参数: //获取商品分类id var id = '121212'; //直接打开产品分类页面,传递参数pid mui.openWindow({ url:'products.html', id:'products.html', extras:{ pid:id ...

KnuthZ的博客 1240

通信算法之264: DJI O2 协议物理层逆向工程解析

对于 DroneID,标志之间的间隙由循环前缀 (CP) 填充:每个标志末尾的副本附加在相应标志的开头。有了关于确切标志开始的信息,可以使用 FFT 将标志转移到频域 - 来自时域的 1024 个样本导致频域中的 1024 个子载波。使用比特流的解扰和涡轮解码,并将生成的数据映射到如上的DroneID 结构,通过逆向工程在无人机的固件中找到了它。注意到一些无人机(Mavic 2 和更早的 OcuSync 无人机)不发送第一个标志(标志 1),这导致更短的帧持续时间为 576 µs。//产品型号数字代号。

leegang12的专栏 3942

ABAP Bits and Bytes 完全参考,理解内存、字节、位运算与类型解释

ABAP开发中业务代码与底层字节处理的差异:业务层关注采购订单、会计凭证等语义信息,而接口开发需处理十六进制、位运算等底层操作。文章通过整数变量示例说明同一段字节在不同类型解释下会呈现不同值,并介绍x类型、位运算及类型转换的实际应用。这些知识在文件接口、加密传输等场景中尤为重要,开发者需注意字节序、编码等问题。建议将底层协议处理与业务逻辑分离,以保持代码清晰和可维护性。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 141

WEB开发者之混合开发APP(八), 商城案例--商城首页(shop.html)

结合以前的知识点,做一个商城App的几个页面。 开发工具:Hbuilder,前端框架:mui,类型:混合开发App. 1. 商城app效果图: 商城首页 商城分类页 商品详情页 商品兑换页 2. 代码部分 2.1 商城首页shop.html,部分代码说明: 页面布局: <!DOCTYPE html> <h...

KnuthZ的博客 2615

2025年下半年网络工程师案例分析真题及答案解析

2025年下半年网络工程师案例分析真题及答案解析

鹿鸣天涯 1087

混合开发浅析

本文主要阐述了我对混合开发的理解,并同时详细讲了在混合开发中遇到的一些关键问题及解决方法,希望对你有用。

洲上牧童 288

PyCharm配置SSH和SFTP远程连接服务器

关于这篇博文,主要因为公司企业都是通过本地测试,同步到服务器进行跑动,舍友看着同事丝滑的操作,让我做个教程。本着钻研的精神,写下了这篇博客记录 关于pycharm这个软件,只有专业版才有远程连接的这个配置,社区版没有(同事一再强调要专业版,学生认证还可申请免费) 关于SSH和SFTP都是一种协议 具体知识点补充可看我这篇文章: 【计算机网络】常见面试题集锦(全) SSH:提供安全通道进行远程登录 SFTP协议可以远程文件传输获取等,数据的安全传输主要由SSH连接提供

码农研究僧的博客 5533

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

初步解析 WebView 在 Android 混合开发中的实践与优化

通过// 构造函数本文深入解析了 WebView 在 Android 混合开发中的核心功能与优化技巧,包括 Java 与 JavaScript 的交互原理、性能优化方案以及常见问题的解决方案。通过示例代码和实践案例,相信你能够更高效地利用 WebView 实现稳定的混合开发应用。作者:陈泽睿原文。

fjnu_se的博客 1029

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

从0到1,解锁Android WebView混合开发新姿势

在如今的移动应用开发领域,Android 系统凭借其庞大的用户基础和开放的生态系统,成为了众多开发者的首选平台。而在 Android 开发中,WebView 混合开发技术正逐渐崭露头角,发挥着举足轻重的作用。想象一下,你在开发一款电商 App,其中商品详情页面的内容可能经常变动,如果采用传统的原生开发方式,每次内容更新都需要重新发布 App 版本,这无疑会增加开发成本和时间。

qq_32890771的博客 704

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

HarmonyOS WebView混合开发实战与优化

WebView作为移动端混合开发的核心技术,通过将Web内容嵌入原生应用框架,实现了跨平台代码复用与动态更新能力。其工作原理基于浏览器渲染引擎与原生系统的深度集成,在HarmonyOS NEXT中更通过分布式架构实现了性能突破。该技术特别适用于需要平衡开发效率与原生体验的场景,如金融类App的资讯模块、快速迭代的营销页面等。通过JS Bridge通信、预加载策略和智能缓存机制,开发者可构建加载速度提升40%的高性能混合应用。在HarmonyOS生态中,自研渲染引擎和硬件加速策略进一步放大了WebView的价

weixin_29722783的博客 254

混合开发新思路:用Android Studio将H5网站变身原生APP的实战与思考

本文详细介绍了使用Android Studio将H5网站封装为原生APP的混合开发实践。通过WebView核心配置、性能优化策略及JavaScript与原生代码交互,实现高效封装并提升用户体验,为已有H5产品的团队提供低成本原生应用转化方案。

git9versioner的博客 1018

dsBridge桥接实践:短视频混合开发中原生播放器与H5的协同方案

混合开发是解决业务迭代速度与原生体验矛盾的主流形态,其核心在于打通原生层与WebView的通信链路。桥接框架作为双方消息传输的通道,决定了功能调用的实时性与稳定性。dsBridge作为一款轻量级双向通信框架,通过统一的调用模型和事件回灌机制,让原生能力可以被H5灵活编排。在短视频这类高频交互场景中,原生播放器承载解码与渲染,H5负责业务UI,桥接层需要管理播放器状态同步、预加载策略、事件节流与生命周期防护。基于模拟项目X的实战,剖析dsBridge在短视频播放场景下的完整链路,包括方法设计、时序推演、常见坑

weixin_30522983的博客 196
上一篇: WEB开发者之混合开发APP(六), 下拉刷新
下一篇: WEB开发者之混合开发APP(八), 商城案例--商城首页(shop.html)
KnuthZ
博客等级 码龄9年 29粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值