一、前言 在前期博文《跨平台应用开发进阶(四十三)一文走近网络层抓包工具:WhireShark》中介绍了网络层TCP抓包工具WhireShark,本节介绍应用层抓包工具Charles。 二、抓包原理 Charles通过将自己设置为系统的网络访问代理服务器,使得所有的网络访问都通过他来完成,从而实现了网络封包的截取和分析。除了在做移动开发中调试接口外,Charles 也可以用于分析第三方应用的通讯协
一、前言 网络是移动应用生命线,网络层面的各种问题会给移动应用带来许多迷惑的行为和症状。通过抓取网络包数据,可以针对性地分析由网络层面问题引起的各种症状,包括连接中断、TLS 握手失败、DNS 解析失败等错误。 Charles 和 Fiddler 可以帮助捕获和分析 HTTP 层面的问题,如果问题发生在 TCP/IP 层面,则需要 TCP 报文的捕获和分析工具。Wireshark(支持 Mac/W
一、前言 在应用uni-app跨平台技术栈进行app开发过程中,uni-app官网支持两种页面设计方案:vue与nvue,不少同学在应用过程中,会搞不清楚两者的区别,而不知如何选择,甚至可能产生错误的应用方式。 二、选择方案 uni-app App 端内置了一个基于 weex 改进的原生渲染引擎,提供了原生渲染能力。 在 App 端,如果使用 vue 页面,则使用 webview 渲染;如果使用
一、archive 四种模式 在应用XCode进行苹果打包的时候有以下四个选项可供选择,在此累述一下四种模式的含义: App Store : 用来发布到App Store, 使用发布证书编译。(production) Ad Hoc : 在开发者账号中过UDID的设备可以使用,使用发布证书编译。(production) Enterprise : 企业发布,使用企业证书编译。 Developm
一、前言 正如将可复用功能封装为自定义组件以供他人使用一样,在uni-app开发框架中提供了另一种形式的自定义插件,并可将该插件提交至uni-app插件市场。 二、插件制作 制作插件前,首先要清楚实现插件的基本思路: 插件需要实现什么效果; 建立插件模板,先把架子搭起来,完成插件基本样式、大致效果; 插件基本逻辑是怎样的; 准备好插件的数据输入,即分析好逻辑,定义好插件里面的数据、类型; 准备
一、前言 APP开发过程中,需要实现分享功能。 常用的分享实现方法包括: 系统分享组件; uniShare SDK调用; 二、系统分享组件 uni.shareWithSystem(OBJECT) 调用系统分享组件发送分享消息,不需要配置分享SDK。分享效果为标题+链接+图片形式,不支持摘要。 注意事项⚠️ Android端当msg参数中设置图片(imageUrl属性)时,分享类型自动变为为
一、前言 在前期博文《跨平台应用开发进阶(三十七)uni-app前端监控方案 Sentry 探究》中讲解了Sentry, Sentry是一个开源实时错误监控项目,支持包括 web 前端、服务器端、移动端及其游戏端等多端配置。考虑到目前存量产品在用监控方案听云,故弃用Sentry,探究听云集成应用详情。 二、产品介绍 基调听云App 移动应用性能管理产品采用SDK方式实现对App的崩溃、卡顿、超时等
一、前言 在日益发达的网络时代,web应用也是越来越复杂,尤其是前端的开发,也是越来越受重视。 前端项目开发完成后,会有一些列的web应用的上线验证,如自测、QA测试、code review 等,以确保 应用能在生产上没有事故。 但事以愿违,很多时候我们都会接受的客户的一些线上问题,这些问题有时候可能你是自己开发的原因本身存 在的问题,这样的问题一般能够在测试环境重现,我们很快的能定位到问题关键位
一、问题呈现 在uniapp中,使用uni.request()向服务端接口发起请求后,返回值为:{"errMsg":"request:fail abort statusCode:-1"},因此,导致了后面的业务代码报错。 通过检查uni.request()根据服务端接口需要的配置(如:url、data、header、method等)都没有问题。 二、问题分析
一、前言 uni-app开发完APP后,上架到应用市场,审核时会对APP内部设置的权限进行核准,并给出相应的理由。 如项目中有以下权限设置: "android" : { "permissions" : [ "<uses-feature android:name=\"android.hardware.camer
一、前言 传统的微信分享可通过URLScheme 实现,具体实现方式详参博文《跨平台应用开发进阶(十六) :uni-app实现URLScheme唤醒APP》,但URL scheme因为是自定义的协议,所以在没有安装 app 的情况下是无法直接打开的(在Safari中还会出现一个不可打开的弹窗),而Universal Link(通用链接)本身是一个HTTPS链接,所以有更好的兼容性。 二、Unive
一、前言 此篇博文主要给大家讲解下安卓端app开发后的上架步骤,及上架前需要准备哪些材料,以便顺利将app上架应用商店。 二、安卓端上架应用商店的六步流程 首先要注册开发者账号。需要提前把手机号,名字,身份证等等材料准备好。 选择软件安装包上传。不同渠道需要准备渠道ID,做好统计。 上传成功后,需要填写一些APP的基本信息。这些信息也要提前准备好,有些通用的直接复制即可。 上传A
(文章目录) 一、脚手架是什么 脚手架是一种约定和规范。可以实现如下规范: 相同的文件组织结构; 相同的开发范式; 相同的模块依赖; 相同的工具配置; 相同的基础代码; 然后脚手架将这些重复性的约定、规范全部都集成起来,减少这样无意义的操作。 二、Yeoman是什么? Yeoman最初发布于 2012 年,是一款高效、开源的 Web 应用脚手架(scaffolding)软件,意在精简软
(文章目录) 一、简介 InversifyJS ,一个强大又轻量的控制反转容器,提供给JavaScript 和 Node.js 应用使用,使用TypeScript编写。 InversifyJS 是一个轻量的 (4KB) 控制反转容器 (IoC),可用于编写 TypeScript 和 JavaScript 应用。 它使用类构造函数去定义和注入它的依赖。InversifyJS API 友好易懂, 是
(文章目录) 一、什么是 BloC 模式? BloC【Business Logic Component】模式是paolo soares 和 cong hui 在2018年Google dartconf上提出的,具体的视频你可以参考YouTube. 从视频中可以看到paolo soares用一个及其简单的例子阐述了传统写法的问题: 业务逻辑和UI组件糅合在一起。 不方便测试,不利于单独的
(文章目录) 一、API 原型 createMaterialTopTabNavigator(RouteConfigs,TabNavigatorConfig) 二、参数说明 2.1 RouteConfigs 路由名称到路由配置的一个映射。示例如下: { Home:{ //这是一个首页路由配置项 screen:Home,//必填项 Home是react的一个组件 path:'',//选
(文章目录) 一、需求 在子组件执行某个操作的时候,需要其调用父组件的某个函数或者改变父组件的某个参数。实现方式如下: 二、子组件 import PropTypes from 'prop-types'; export default class Child extends PureComponent { static propTypes = { onItemClick: PropTy
(文章目录) 一、概述 ScrollView在Android和ios原生开发中都比较常见,是一个滚动视图控件。在RN开发中,系统也给我们提供了这么一个控件。不过在RN开发中 ,使用ScrollView必须有一个确定的高度才能正常工作,因为它实际上所做的就是将一系列不确定高度的子组件装进一个确定高度的容器(通过滚动操作)。 所以,要给一个ScrollView确定一个高度的话,要么直接给它设置高度(不
(博文目录) <hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1"> 一、概述 react-native-scrollable-tab-view 标签导航组件可实现点击切换,每个 tab 可以有自己的 ScrollView,点击切换的时候可以维护自己的滚动方向。
(文章目录) 一、前言 在React或React-native的点击事件中,会经常用到bind(this)。比如说一个简单的React-native点击组件: export default class AwesomeProject extends Component { constructor(props){ super(props); this.state = { }
一、前言 项目开发过程中,需要获取设备信息,例如获取设备名称。可通过使用开源的第三方组件react-native-device-info,该组件适用于iOS和Android双平台。 在ReactNative项目中可通过npm命令下载 react-native-device-info 组件依赖包: npm install --save react-native-device-info 二、Andr
(文章目录) 一、问题描述 在RN Android开发过程中,测试机突然报如下错误信息: 二、问题分析 红屏给出的解决方案翻译过来如下: 请按照以下的步骤来修复此问题: 确保包服务器在运行 确保你的设备或者模拟器连接着电脑,并且手机打开了USB调试模式,然后在cmd中运行adb devices来查看已经连接好的设备列表 确保飞行模式是关闭的 如果是使用真机来开发,输入 adb reverse
(文章目录) 一、前言 在做RN App开发过程中离不了用户交互,在React Native中没有专门的按钮组件。 为了让视图能够响应用户的点击事件,需要借助Touchablexxx组件来包裹视图。为什么说是Touchablexxx呢,因为它不只是一个组件,而是一组组件,以下四个组件都可以用来包裹视图来响应用户的点击事件。 TouchableWithoutFeedback:响应用户的点击事件,
(文章目录) 一、问题描述 在RN开发过程中,项目运行在android平台时报如下错误信息: TypeError: expected dynamic type int64', but has type 'null' 初次接触该类型问题,一脸懵。 二、问题分析 { (()=>{ return this.state.data.length? [<Text key
(博文目录) 一、简介 刷新功能在数据更新的时候很常用,它对用户有一个非常明显的数据正在更新的提示信息。ReactNative提供了RefreshControl组件来实现刷新功能。 RefreshControl组件可以用在ScrollView或ListView内部,为其下拉刷新的功能。当ScrollView处于竖直方向的起点位置(scrollY: 0),此时下拉会触发一个onRefresh事件
(文章目录) 概述 所谓生命周期,就是一个对象从开始生成到最后消亡所经历的状态,理解生命周期,是合理开发的关键。RN 组件的生命周期整理如下图: 如图,可以把组件生命周期大致分为三个阶段: 第一阶段:是组件第一次绘制阶段,如图中的上面虚线框内,在这里完成了组件的加载和初始化; 第二阶段:是组件在运行和交互阶段,如图中左下角虚线框,这个阶段组件可以处理用户交互,或者接收事件更新界面; 第三阶段
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号