SYWebViewBridge 支持同步调用

如果你还不知道 SYWebViewBridge,可以看:

我的第一个开源库 SYWebViewBridge

SYWebViewBridge 在 iOS 上内存泄露的思考与方案

最近对 SYWebViewBridge 扩充了一种能力「支持同步调用」,比如想在 JS 中同步获取用户的登录状态,你可以这样写:

isLoginSync() {
    let login = sy.system.isLoginSync();
    if (login.isLogin) {
        sy.debug.alert('已登录');
    }
    else {
        sy.debug.alert('未登录');
    }
    
}

这样的 bridge api 是不是非常的友好?写出了小程序的感觉。

项目效果如下:

我对该项目的每一类型的 bridge 都写了“单测”,这样当对框架改变后,把所有的 case 走一遍,以免影响老功能。

上次有朋友说:“这项目跑不起来”。

我统一回答下:bridge 依托于 iOS 和前端环境,在 iOS 项目中有两个页面依赖于 web,想要整个项目跑起来你需要把 web 的服务跑起来,才能正常工作。

如何跑起 web 项目?

在  https://github.com/lefex/SYJSBridge 这个项目的 README 中有写:

# 克隆或下载这个项目
git clone git@github.com:lefex/SYJSBridge.git
# 进入 SYJSBridge 下的 web 目录
cd web
# 执行 npm install to  install dependency
npm install
# run webserver
npm run start

npm 是 node 的包管理工具,如果没有 npm,在 node 的官网安装 node,npm 即可安装。

前端项目跑起来后,运行 iOS 项目,项目地址:

https://github.com/lefex/SYWebViewBridge

整个项目运行起来后,效果是这样的:

最后

支持同步方法调用花费了大约 2 个小时,因为在框架设计的初期我考虑了大量的兼容问题,整个通信过程以路由为基础,即使以后你要实现App 内的路由跳转任意页面、web 导流到 App、更换通信通道,都可以使用同样的路由规则,只需修改少量的代码即可完成。

大家加油!

长按关注

素燕《前端小课》

帮助 10W 人入门并进阶前端

官网:https://lefex.gitee.io/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值