首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

App架构设计经验谈:技术选型

而且,我们主推产品是App,微信属于辅助性产品,所以,微信要求也没那么高。因此,我决定以原生为主,H5为辅,App大部分页面用原生完成,小部分用WebView加载H5。...另外,WebView加载H5也有两种模式,一种是加载服务器H5页面,一种是加载本地H5页面。加载服务器H5页面比较简单,WebView只要load一下URL就可以了。...另外,WebViewH5有点击事件时,也许是URL链接,也许是调用JS,都不会让它直接在该WebView里做跳转,需要拦截下来做些原生处理后跳转到一个新原生页面,原生页面也许嵌入另一个WebView...Objective-C/Swift 我在项目中选择了Swift,主要基于三个原因: Swift真的很简洁,生产效率很高; Swift取代Objective-C是必然趋势; 目前iOS只有我一个人开发,...如果你团队里没人懂Swift,那还是乖乖用Objective-C吧;如果有一两个懂Swift,那可以混合开发,并让不懂的人尽快学会Swift;如果都懂了,不用想了,直接上Swift吧。

1.4K10

移动端那些戳中你痛点软键盘问题及解决方法

(对于这点,ios本身是支持,但是安卓却并不会主动让输入框出现在可视区域内) 4、对于部分ios系统下部分微信webview内,发现软键盘收起时,滚动上页面没有滚动下来,造成了下面区域留出了一片灰色区域...为了解决这个问题,ios设计者们让webview,但滚动结果有些出乎意料:输入框本身可以理解地滚动到了实际可视区域正中间,但 fixed 元素不会发生重新计算,而是保持原来相对位置,跟着输入框一起被上推...当时找了一圈方法,觉得并没有合适解决方法,退而求其次,既然h5无没有办法很好解决吸顶问题,那么这个能力不如就用客户端能力好了,客户端header不属于webview内容,自然webview上推时...header,所以前端webview高度就是整个屏幕高度,而现在由于采用是客户端jsb能力,所以webview剩余高度就需要减去header头高度。...4、ios软键盘收起时页面不能自然滑落 对于部分ios系统下部分微信webview内,发现软键盘收起时,滚动上页面没有滚动下来,造成了下面区域留出了一片灰色区域。

7.8K30

如何写出一手好小程序代码,从架构说起

原始基础架构,可以参考官方图: 不过上面那张图其实有点误导行为,因为,webview 渲染执行在手机端上其实是内核来操作webview 只是内核暴露一下 DOM/BOM 接口而已。...:双向通信-- ( core webview intermedia appservice ) · 高阶组件通信:单向通信体系 ( appservice <= android/Swift...也就是说任何挂载在 jsContext 内容都是 JSValue 类型,swift 在内部自动实现了和 JS 之间类型转换。...简单来说,它会直接将 native 相关属性和方法,直接转换成 prototype object 上方法和属性。 那在 JS 代码中,如何执行 Swift 代码呢?...绑定到 Webview Context 中的话,前面实例 Context 就需要直接修改为 webview Context。

1.9K20

Dore 混合应用框架 —— 基于 React Native 混合应用迁移方案

Dore 是一个使用 React Native 实现 WebView 容器,可以让你在 WebView 调用 React Native 组件。...其设计初衷:用于迁移 Cordova WebView 应用到 React Native WebView。 ? 当然,仍然有更多插件在开发之中,为了训练一下我编写原生代码能力。...我将改写一些 Java、Objective-C 原生代码,未来会考虑使用 Swift。...(0.2);DoreClient.isTablet().then(function(data) {}); 在 React Native 使用起来也比较简单,在 WebView onMessage 调用...onMessage = evt => { Dore.handleMessage(evt, this.webView)}; 对应,只需要注入相应原生模块,就可以调用第三方原生模块——前提是我们已经对接了

1.7K50

【错误记录】Android WebView 报错 ( 网页无法打开 位于 baiduboxapp:speec... 网页无法加载, 因为 net::ERR_UNKNOW_URL_SCHEME )

WebView 尝试加载不支持 URL 链接 , 目前 WebView 只能支持加载 http 或 https 协议 URL 地址 ; 当前要加载地址是 " baiduboxapp://speech...函数 , 获取要加载 URL 地址 , 如果发现了要加载不支持 URL 协议地址 ,则启动对应应用加载该地址 , 如 百度 / 淘宝 / 京东 等应用 ; 解决方案 : 为 WebView 设置..., 直接调用对应 app 应用 ; // WebViewClient 是一个用于处理 WebView 页面加载事件webview.webViewClient =...URL 来启动上述 MyActivity ; 在 WebView 中如果遇到了此类 URL 链接 , 使用 WebViewClient shouldOverrideUrlLoading 方法来拦截不支持...URL 协议,不直接加载这些链接 , 而是直接启动 ; 通用处理方案如下 , 一般是启动该 url 对应应用 ; WebView webView = findViewById(R.id.webView

2.9K10

看完还不会解决滑动冲突?呵呵,我食屎!!

安卓设备由于由于屏幕限制,如果想要在有限屏幕中展示更多内容,列表和弹窗就是一种非常好解决方案,列表尤其是华滑动列表。...同样也是面试必问知识点,所以说掌握安卓滑动冲突解决方案是安卓程序员必不可少一项技能 下面这个例子是一个非常典型一个嵌套滑动例子(scrollview嵌套webview)。...需求也很简单:整个页面是需要上下滑动,另外呢上面一部分webview加载全景视图也是需要能够自己左右滑动上下滑动。下面请看效果图。 ?...像这种scrollview嵌套webview页面肯定会产生滑动冲突。具体表现呢就是:webview里面内容绝对不会自己滑动,滑动只是滑动外层scrollview。...其中原理才是我们真正需要掌握。 因为产品脑袋永远不是正常人脑袋。ui手也永远不是正常人手。当他们用一个个列表设设计出来千奇百怪交互时候。你当时心态简直就是日了狗。

46510

Swift macOS开发与Core Data,CloudKit开篇

toc 坚持总是最难,立了很多flag,最终却仍是什么都没有做成。 喏,这不,又是一个flag。...喜欢将自己称之为创造者,也很庆幸能用自己既能创造点东西出来,花花世界可爱技术太多了,就连单单写个App就有着各种要花缭乱法子,webview,混合,原生……,谁不想用最小力气写出最好作品呢...Swift语言相关,工作中使用Typescript, React,RxJs,越来喜欢强类型语言,Swift作为一种现代,安全,强类型语言,值得再复习它语法。...可能会GitHub开源一个横跨,iOS,iPad,macOS 使用Core Data本地存储数据,CloudKit网络同步TODO App。 可能会探索下RxSwift,工作中RxJs不要太爽。

41920
领券