gallery_plugin
大小:444KiB版本:v 1.2.2更新时间:2021-12-21
字节跳动-互娱前端-火山gallery插件,用于chrome浏览端内h5页面
该插件会针对节跳动公司域名( "https://*.bytecdn.cn/*", "https://*.snssdk.com/*", "https://*.byted.org/*", "https://*.pstatp.com/*")下的h5 hybrid app page inject一段脚本。h5 hybrid app page通常都是在手机application中用webview打开。webview通常会注入一些native能力(https://www.jianshu.com/p/3e25127e6f9a),页面可以通过jsbridge调用这些native能力,如果直接用chrome打开这些页面,由于chrome没有提供这些jsbridge,因此会导致h5页面在chrome上展示不正常。
为了更好的在chrome上面浏览我们的h5 hybrid app page,我们开发了这个扩展插件。本插件的主要目的是提供一些jsbridge能力,具体来说即为window提供了一个ToutiaoJSBridge对象,使chrome具有像webview一样的行为。例如:当页面调用了window.ToutiaoJSBridge.call('appInfo')获取宿主app信息时,我们的扩展将会拦截window.ToutiaoJSBridge.call这个函数调用,并返回一些数据。这样就像在webview里访问页面一样,可以正常展示。如果没有我们的扩展,页面将会因为在chrome上找不到window.ToutiaoJSBridge这个对象而抛出错误,从而导致无法交互。
以https://hotsoon.snssdk.com/falcon/live_inapp/page/push_hot#/selfList这个页面为例,当我们打开它时,它调用了window.ToutiaoJSBridge.call('fetch')与application进行通信。如果不安装我们的扩展,我们的window上面并没有ToutiaoJSBridge这个方法,因此这次调用会报错,从而导致我们不能正常浏览这个页面。
总的来说,我们的这个扩展是为了让chrome像webview一样具备一些jsbridge,这样可以更方便的在chrome上浏览我们的一些h5 hybrid application page,我们承诺,不会收集用户数据,也不会做一些其他无关的事情,谢谢。
本次是版本1.2.2,对代码进行了压缩以减小体积,同时优化了一些默认参数。