`
siruoxian
  • 浏览: 238839 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

关于JS与Native通信时,消息丢失的解决方案

 
阅读更多

加载一个隐藏的iframe来实现的,通过将iframe的src指定为一个特殊的URL

// Javascript语言
// 通知iPhone UIWebView 加载url对应的资源
// url的格式为: gap:something
function loadURL(url) {
    var iFrame;
    iFrame = document.createElement("iframe");
    iFrame.setAttribute("src", url);
    iFrame.setAttribute("style", "display:none;");
    iFrame.setAttribute("height", "0px");
    iFrame.setAttribute("width", "0px");
    iFrame.setAttribute("frameborder", "0");
    document.body.appendChild(iFrame);
    // 发起请求后这个iFrame就没用了,所以把它从dom上移除掉
    iFrame.parentNode.removeChild(iFrame);
    iFrame = null;
}

 

在这里,可能有些人说,通过改document.location也可以达到相同的效果。关于这个,一般情况下,改document.location是可以,但是改document.location有一个很严重的问题,就是如果我们连续2个js调native,连续2次改document.location的话,在native的delegate方法中,只能截获后面那次请求,前一次请求由于很快被替换掉,所以被忽略掉了。

 

分享到:
评论

相关推荐

    belajar-react-native

    React Native将React的理念扩展到了移动平台,它将JavaScript与原生平台的组件结合,实现了“Write Once, Run Everywhere”的目标。在React Native中,JavaScript负责处理数据逻辑和UI渲染,而原生组件则负责与操作...

    desafio3-conceitos-reactive-native

    开发者可以轻松地找到解决方案,扩展功能,如网络请求、推送通知、地图集成等。此外,社区的活跃度也是React Native持续发展的重要动力。 总结 “desafio3-conceitos-reactive-native”这一挑战项目,是对React ...

    react-native-projects:React在nFactorial孵化器期间进行的本机项目

    2. **JavaScript与原生桥接**:React Native通过JavaScript Bridge与原生平台通信,处理图形渲染、触摸事件和其他原生功能。虽然这可能导致一定的延迟,但整体上,JavaScript的灵活性和原生性能的结合提供了良好的...

    Coursera-Multiplatform-React-Native-Mobile-App

    7. **第三方库**: React Native拥有丰富的第三方库生态系统,如Redux(状态管理)、React Navigation(导航解决方案)等,能快速扩展应用功能。 **文件名称列表分析** 由于只有一个文件名"Coursera-Multiplatform-...

    Dryvo-App:使用React Native构建的Dryvo应用程序的前端

    Dryvo-App就是基于React Native构建的应用程序,旨在提供一个与API(应用程序接口)协同工作的移动解决方案。 1. **React Native核心概念**: - **组件化**:React Native遵循React的组件化思想,将UI拆分为可重用...

    Hybrid开发

    总之,Hybrid开发模式通过结合Web技术的灵活性和Native应用的高性能,为移动应用开发提供了一种高效的解决方案。然而,开发者也需要面临资源更新、数据解耦、性能优化、互调实现等技术挑战。在未来的开发实践中,...

    webrtc架构分析

    WebRTC 架构分析 WebRTC(Web Real-Time Communication)是一种支持...WebRTC 架构分析提供了一个广泛的实时通信解决方案,包含了音频和视频处理技术,能够满足 Web 开发者开发基于视频、音频的实时通信应用的需求。

    融云 +MUI整合web聊天

    在IT行业中,构建一个高效的Web聊天应用是许多项目的核心需求,尤其在实时通讯领域。"融云 + MUI整合web聊天...融云与MUI的结合,为开发者提供了一个高效且易用的解决方案,让Web聊天应用的开发变得更加简单和快捷。

    React本机

    6. **社区支持**:React Native拥有庞大的开发者社区,提供了丰富的第三方组件和解决方案,使得开发更加便捷。 7. **VHS(Video Hydration for React Native)**:压缩包中的"react-native-vhs-master"可能指的是...

    MobileAppUsingReactNative:响应本地移动应用程序开发游乐场

    总之,React Native为移动应用开发提供了一种高效且灵活的解决方案,它简化了多平台开发流程,同时也带来了与Web开发类似的开发体验。通过深入学习和实践“MobileAppUsingReactNative”,你可以掌握React Native的...

    原生React

    总的来说,原生React(React Native)为移动应用开发提供了一种高效、灵活的解决方案,结合JavaScript的便利性和原生应用的性能,已经成为现代移动开发的重要选择。然而,它也有其局限性,如性能优化、大型项目管理...

    悬赏猫-任务接单发布系统APP+霸屏天下赚钱猫蚂蚁帮扶+众人帮威客任务悬赏404任务平台+搭建教程.zip

    4. 威客任务悬赏:威客模式是一种基于互联网的知识技能服务交易模式,任务发起者发布需求,威客(即具备特定技能的个人或团队)通过提交解决方案来竞争任务。这种模式下,平台需具备公平公正的任务分配机制、知识...

    通讯录管理系统

    《通讯录管理系统详解》 通讯录管理系统是一种用于存储、管理和检索个人或组织联系信息的应用程序...在实际开发过程中,还需要考虑性能优化、用户体验以及不同平台的适配等因素,以提供更加完善的通讯录管理解决方案。

    前端面试题

    - **基本概念**:超文本传输协议,定义了客户端与服务器之间的通信规则。 - **工作流程**:客户端发送请求至服务器,服务器接收请求并返回响应。 **2. 安全性** - **常见威胁**:XSS(跨站脚本攻击)、CSRF(跨...

Global site tag (gtag.js) - Google Analytics