Open linonetwo opened 3 years ago
可以本地提供内容库API,Web端读取本地库然后再使用Chrome扩展提供的API来同步
具体可以参考: https://github.com/wechatsync/Wechatsync/blob/master/packages/markdown-editor/src/Main.vue https://www.wechatsync.com/md/
插件会向页面注入window.$syncer
API
除此之外就是插件和本地应用通过websocket建立通讯,插件把账号信息推送给本地应用并且接送同步任务的推送。
正在计划把发布API抽出一个包来,但是需要开发者自己注入各个平台登陆后的Cookie
我感觉我可以在我的APP里加上这个插件,只要我写个在electron里嵌入浏览器插件的功能就好。 不过在electron里怎么调用你的插件还是个问题
我最近发现 wecatalog 增加了导入 chrome 插件的功能,我研究一下或许能把 wechatsync 带到 electron 里,这样就方便用你注入到 window 上的 api 了,通过你新发布的那个 SDK 来调用你的 API,不需要把实际功能单独抽出来发 npm 了。
说来惭愧,因为我一整年没写过任何文章了,所以还没用过你的插件。到时候是不是electron里点一下登录按钮,就可以在electron里弹出一个窗口登录第三方网站?
在 electron 里登录各个第三方网站好像也有点麻烦,不过这样的话也插件就不需要支持火狐了,让火狐用户也能用 electron 版文章编辑器来发布东西。
可以本地提供内容库API,Web端读取本地库然后再使用Chrome扩展提供的API来同步
其实这个想法不错,能不能加一个填本地 CMS 地址的框,然后我填 localhost:xxxx ,你和它建立 websocket 通信之后,它可以以规定格式向你推送文章草稿?
或者更麻烦点儿,像 webclipper 一样加插件系统适配不同CMS,但是一是写插件麻烦你还得补充文档(webclippper 的插件我至今还没写出来…因为文档不清楚,代码有点没精力读),二是其实要求CMS那边写插件提供websocket接口插件跟你对接就行了。
哇,很丰富的想法
不知道我的理解是否有误?
没错的,各有取舍吧。
为了方便用户不用每个网站在electron里都重新登录一遍,我觉得还是 websocket 的思路比较好,但是火狐用户就用不了了。
走Websocket的话, 需要CMS跑个WS Server, 插件支持设置推送端WS URL
broadcastSyncTask
setSyncAccounts
updateSyncTaskStatus
通过设置的WS URL和CMS端建立链接
setSyncAccounts
发送账户信息给CMS端broadcastSyncTask
广播推送任务updateSyncTaskStatus
接口反馈同步状态给CMS端setSyncAccounts
是为了在 CMS 那边显示出平台列表,方便用户点选某一个来发布吗?
选择平台+文章之后,通过 broadcastSyncTask 调用
我希望能在我的开源 Electron 笔记工具里,暴露一个把 markdown 内容传给 wechatsync 的 API,调用后显示现有的账号添加等界面,这需要对现有代码做哪些修改呢?
不方便直接嵌入扩展,因为Electron应用上没有一个栏用来放扩展,而且唤起扩展的按钮可能是自定义的。
我在想是不是得把现有写在扩展里的 UI 部分重构出来?不过这是 vue 写的,要嵌入 react 应用也不是很方便…