letmocha = context.document.class() 。 mocha()console.log(mocha.properties())// o [ocexuperation:withObject:错误:] // cocoascriptexecuteoperation_withobject_error()基于Cocoascript的Bridge使用JavaScript来调用Object-C,如下所示:
Objective-C方括号语法“[]”转换为JavaScript“ 。 句法 。 Objective-C的属性将导出到JavaScript Getter到Object.name()和setter是object.name ='素描' 。 Objective-C选择器接触到JavaScript代理方法 。 “:”冒号被转换为下划线“_”,最后一个下划线是可选的 。 使用下划线调用方式需要双下下划线:sketch_method更改为sketch__method 。 选择器的每个组件连接到没有分隔符的单个串 。 5.行动
行为定义
操作是指由于用户交互而发生的应用程序中发生的事件,例如“打开文档”,“关闭文档”,“保存” 。 Scrapt提供的Action API允许插件响应应用程序中的事件,这有点类似于Android开发中的广播或作业调度程序 。 官方文件枚举数百个可以倾听的行动,但只有以下内容:
监控回叫
我们只需要将处理程序添加到Plugin的Manifest.json文件中 。 例如,下面的示例增加了“Opendocument”的监视,即,在打开新文档时,请告诉插件在开放文档执行此功能 。
{“脚本”:“action.js”,“标识符”:“my-action-listener-标识符,”handler“:{”操作“:{”opendocument“:{opendocument”:“}}}}触发动作时,js中的侦听方法返回 。 同时,素描可以将动作上下文发送到目标函数,其包含操作本身的一些信息 。 在以下示例中,每次打开文档时都会弹出吐司 。
functionopendocument(上下文){context.actionContext.document.showmessage('documentpendeened')}6.桥接双向通信
在传统的插件开发中,UI层通常使用WebView实现,因此您可以使用各种前端开发框架,例如React或Vue等 。 ;插件的逻辑层(负责调用Skecth API)显然不在WebView中,因此您需要通过桥接通信 。 逻辑层将从服务器获取的数据传递给UI层,而UI层将用户的操作反馈传递给逻辑层以调用层的草图API更新 。
素描通信原则
插件发送给WebView
//ontheplugin:browserwindow.webcontents.executejavascript('someglobalfunceddefinedinthewebview ("hello")').then (res=> sibenththeresult)piewow.someglobalfunceddefinedinthewebview=function(someglobalfunctiondefinodedinthewebview=function(arg) }WebView将消息发送到胶件
//onthewebview:window.postmessage('nativelog','calledfrom thewebview'hibe)//ontheplugin :varsketch=require('sketch')browserwindow.webcontents.on('nativelog',function(s){ssketch.ui.message(s. )})在上述步骤之后,我们将使用WebView作为内容载波的基本插件,并具有双向通信功能 。 打开插件时,WebView通过加载到逻辑层的事件 。 逻辑层调用草图API来弹出吐司;单击“获取随机数”以从逻辑层获取随机数 。
skpm / webview运行效果
正式加入发展团队我相信我已经阅读了上述部分,为您制作一个简单的插件,它有点“兴奋” 。 但是此时,疑惑也来了,为什么演示和我们的常见插件的UI?
就是正确的,官方文件只教导我们最基本的插件开发过程,而且成熟的商业项目不仅仅是这些 。 完美插件应包括以下三个部分:工具栏,WebView容器和业务数据 。 下面,我们将向您展示如何开发商业插件UI,并且还将展示美国组的“填充功能”的实现(注意:问题文档中的保留密钥代码 。 )
传统的草图插件结构
创建一个AdSoRation工具栏
所谓的吸附工具栏是将工具栏显示在SKETH右检查器面板旁边,该面板以吸附方式与草图操作界面集成,这也是大多数插件的视觉演示方法 。 该工具栏显示当前插件可以提供的大多数功能,以便在操作文档时快速选择它 。
- 汽车是前轮驱动还是后轮驱动 前轮驱动和后轮驱动的区别是什么?
- 在汽车行业混了这么多年这些缩写不知道说不过去吧 照片
- 混动汽车的电池可以用多久 混动汽车多久换电瓶?
- 北京现代汽车电瓶多久换一次 北京现代电瓶多久换?
- 如何让汽车省油?
- 一个三角叉的车标是什么车 一个叉的车标是什么汽车?
- 君马汽车属于哪个公司旗下 君马汽车属于哪个公司旗下?
- 汽车缺玻璃水什么标志 汽车玻璃水装置在什么位置?
- 小汽车水箱多久加水 朗行水箱多久加水?
- TOYOTA是丰田哪款vios toyota是丰田哪款汽车?
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
