JSAppSugar 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
JSAppSugar 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
JSAppSugar 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 MIT
开发语言 Objective-C
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
投 递 者 neal01
适用人群 未知
收录时间 2018-11-08

软件简介

JSAppSugar 是基于 JavaScript 语法定义的一系列语法糖方法,包括:JavaScript 方法,Objective-C 方法和 Java 方法,以实现将开发 iOS/Mac/Android 原生应用程序的部分代码(一般来说是业务逻辑代码),用 JavaScript 代码来编写,从而简化开发过程,提高开发效率,以及提高程序质量。

通过使用 JSAppSugar 的 Cocoa 和 Java 实现,开发者可以将原有原生代码的任何一部分改为 JavaScript 实现,并可以在 JavaScript 代码以 JavaScript 对象的使用语法使用由原生代码开发的类,而无需关心具体实现是由 Java 实现还是 Objective-C 实现。

QuickStart

Use JS Object In Objective-C

//initialize JSA4Cocoa
JSA4Cocoa* jsa = [[JSA4Cocoa alloc]init];
[jsa startEngine];

//create a JS Object
id<JSAObject> jsObject = [jsa newClass:@"JSObject"];

//invoke methods on the object
NSString* text = [jsObject invokeMethod:@"getText"];

Use JS Object In Java

//initialize JSA4Java
JSA4Java jsa = new JSA4Java();
jsa.startEngine();

//create a JS Object
JSAObject jsObject = jsa.newClass("JSObject");

//invoke methods on the object
String text = (String)jsObject.invokeMethod("getText");

Use Native Object In JavaScript

//define the interface for native class
$class("NativeObject",{
  $implementation:{
    $java : "JavaObject",//the name of a java class
    $oc : "OCObject"//the name of a OC class
  },
  getText:{
    $java : "getText",
    $oc : "getText:"
  }
});

//define a js class. Then you can use this class in JavaScript, Java and objective-c
$class("JSObject",{
  getText:function(){
    //create a native object
    var nativeObject = new NativeObject();
    //invoke methods on the object
    var text = nativeObject.getText("Hello");
    return text;
  }
});
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣 发布并加入讨论🔥
暂无内容
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
0 评论
8 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部