精华内容
下载资源
问答
  • Tabris Chinese Documention

    2020-12-06 07:12:07
    <div><p>I have translated the tabris.js document into Chinese, welcome to check it out : <a href="https://youjingyu.github.io/Tabris-Documention">Tabris Chinese Documention</a></p>该提问来源于开源项目...
  • Support for Tabris

    2020-12-08 20:00:12
    <div><p>Integrate tern tabris https://github.com/angelozerr/tern-tabris</p> <p>See discussion at https://github.com/eclipsesource/tabris-js/issues/180</p><p>该提问来源于开源项目:angelozerr/tern...
  • Tabris中的一个简单的圆计算器应用程序 跑 如果尚未这样做,请在上安装 : npm i tabris-cli -g 然后在项目目录中,键入: npm start 或从Visual Studio Code任务运行程序中选择“ npm:start”,使编译错误出现在...
  • Tabris patch questions

    2020-11-27 18:03:32
    <div><h3>Problem description <p>Hello everyone ...<ul><li>Tabris.js version: 2.7.0</li><li>Device: Iphone6</li><li>OS: IOS 12.1.4</li></ul>该提问来源于开源项目:eclipsesource/tabris-js</p></div>
  • tabris 1.5 ETA?

    2020-12-06 07:13:34
    <div><p>tabris 1.5 ETA? thanks!</p><p>该提问来源于开源项目:eclipsesource/tabris-js</p></div>
  • tabris with cordova run

    2020-11-28 00:16:22
    <div><p>I have put tabris.js cordova demo code directly in the www folder. But when I use cordova run, it shows this image. - I have done everything as cordova support...eclipsesource/tabris-js</p></div>
  • tabris csdn Tabris是用于本机移动应用程序的跨平台开发的第一个Java工具包。 它将本地用户体验与量身定制的本地控件和功能结合在一起。 但是原生到底是什么意思? 当前开发移动应用程序时,现有的各种可用平台...

    tabris csdn

    Tabris是用于本机移动应用程序的跨平台开发的第一个Java工具包。 它将本地用户体验与量身定制的本地控件和功能结合在一起。

    但是原生到底是什么意思?

    当前开发移动应用程序时,现有的各种可用平台构成了一个真正的问题。

    对于那些可以访问各种硬件和软件的最终用户来说,这是一个梦想,但对于开发人员来说却是一场噩梦。

    一旦移动应用程序开发人员必须为多个平台开发应用程序,他们就会面临各种各样的挑战。

    最困难的挑战之一是获得必要的专业知识。 即使我们“仅”考虑两个市场领先的平台(iOS和Android),这也意味着:

    • 精通2种编程语言:Java和Objective-C。
    • 掌握两个具有不同API的平台。
    • 规划一个(或两个)应用程序设计,同时考虑两个平台。

    简而言之,如果您为每个平台分别进行“本地”开发,则开发移动应用程序所需的工作或多或少会随着所支持平台的数量而增加。 幸运的是,跨平台工具包提供了一个极好的选择。

    当前,有两种不同类型的跨平台工具包。 一方面,基于HTML的工具包,另一方面,基于跨平台编译或本机控件和功能的解释的工具包。

    PhoneGap显然是第一类产品,并且使用HTML来显示UI。 此解决方案的魅力无疑是开发简单应用程序的速度。

    但是,HTML5趋势最近已失去了部分吸引力,这主要是由于最终用户不满意和Facebook等重大失败。

    就用户体验而言,HTML5很容易成为开发移动应用程序的负担。 与Web应用程序不同,移动应用程序通常配备了高度复杂的控件(小部件)。 尽管HTML5工具箱(例如JQuery Mobile)提供了与操作系统小部件相似的功能,但为此,它们需要为每个小部件组合多个元素。 在更复杂的用户界面的情况下,这会导致大量DOM元素,并可能对应用程序的性能产生负面影响。 不管是否面向小部件,大多数HTML-UI都不提供令人满意的用户体验,因为该应用程序通常看起来和感觉都不熟悉。 这种不熟悉的范围从小部件的外观和感觉到不熟悉的导航概念和动画。

    第二类跨平台工具包使用操作系统小部件,从而避免了外观问题。 用这种技术创建的应用在视觉上比HTML-UI更接近本机界面。 但是,这些解决方案也带来了各种挑战。

    要成功开发本机应用程序,仅显示本机窗口小部件还不够。 用户导航还必须反映特定于平台的概念。 对于本机App开发,开发人员可以访问相关的平台概念来设计应用程序。 对于iOS,这是适用于Android“活动”和“ ActionBar”的“ ViewController”原则。 只有少数跨平台工具包将这些概念抽象化并统一起来。

    这正是Tabris出现的地方。基本上,Tabris属于跨平台工具箱的第二类。 它使用Java-API抽象了本机控件及其功能。 这些元素包括简单的元素,例如按钮或文本字段,还包括更复杂的元素,例如树/列表或滑动小工具。 除了控件之外,它还提供Java-API,用于控制设备的摄像头或获取地理位置信息。 Tabris的另一个基本功能是对本机导航概念的抽象,称为Tabris UI。

    用户界面非常简单,仅包含两个核心组件。 这些是页面和操作类型。 解释这些类型的最佳方法是使用屏幕截图。

    (点击图片放大)

    此图显示了相同的应用程序如何在iOS和Android设备上显示。 该应用程序的实际内容是相同的。 只有与平台典型框架的集成才不同。 用红色标记的区域表示页面。 页面是控件的一种容器。 绿色标记的区域表示两个操作。 从概念上讲,动作表示与应用程序或页面相关的可能的用户交互。

    要使用这些类型创建一个完整的应用程序,必须将它们彼此连接。 第一个连接是所谓的流。 该流程描述了可以以各种方式组合在一起的页面链。 为了创建这种流程,Page必须扮演一个角色。 可能的角色是顶层页面和普通页面。 顶层页面标记流程的开始,并且仅存在一次。 普通页面在流中可以存在一次或多次,但不能在开始时存在。 使用下图可以很容易地解释这一点。

    (点击图片放大)

    上图显示了典型的应用流程。 在这种情况下,该应用程序由三个顶层页面和几个普通页面组成。 用户现在可以通过使用“动作”在各个页面之间导航。 在此阶段,重要的是,可以按不同的顺序遍历流,如以下示例中所述。

    假设您希望开发一个“ Book Shop App”。 在这种情况下,书籍是应用程序的核心元素。 因此,用户必须能够轻松地在不同的书之间导航。 协作过滤是一项帮助亚马逊产生大量额外收入的功能。 即“购买此书的客户也购买了其他这些书”。 使用此功能,用户可以在书籍之间导航。 因此,该导航链的长度不受限制。 但是,所需的功能是可以向后导航到上一本书或返回到起​​始页。

    Tabris UI的流程启用了这种导航。 流可以具有任何非固定深度。 任何时候都可以进行向前导航。 但是,这意味着流的开始必须具有固定的定义。 例如,在我们的书籍样本中,这将是畅销书的清单。

    第二个概念,即动作,也与页面相关。 通常,动作封装了应用程序功能。 在书籍示例中,这可能是将书籍添加到购物篮或进行搜索。 这两个活动也直接描述了可能的操作范围:一个操作具有页面范围或全局范围。 它也与页面或整个应用程序连接。 搜索是全局操作的一个示例,因为应该可以从应用程序中的任何位置访问它。 与此不同的是,只有当用户在书页上时,才应该将书添加到购物篮中。

    书店的完整申请流程如下所示:

    (点击图片可放大)

    屏幕截图显示了适用于Android和iOS的相同应用程序。 该应用程序包含三个顶层页面:“所有书籍,热门和收藏夹”。 这些顶层页面中的每个页面均显示书籍列表。 选择后,其中一本书会显示在详细视图中。 最终用户可以从那里访问其他书籍或预览。 该应用程序的代码可在GitHub上获得 要观看此应用程序的运行情况,您还可以观看此视频

    在讨论Tabris UI的导航概念之后,我们还要讨论构成应用程序内在部分的小部件。 在此过程中,Tabris利用已建立的跨平台窗口小部件工具箱SWT(标准窗口小部件工具箱)的API。 SWT是轻量级的,广泛的开放源代码,并使用JFace提供强大的MVC框架。 例如,上面显示的书店的列表视图可以仅用几行代码来实现。

    public class BooksListPage extends AbstractPage {
    public void createContent( Composite parent ) {
    TreeViewer viewer = new TreeViewer( parent, SWT.V_SCROLL ); viewer.setContentProvider( new BooksContentProvider() );
    viewer.setLabelProvider( new BooksLabelProvider() );
    addBookSelectionListener( viewer );
    ...
    public class BooksContentProvider implements ITreeContentProvider {
    public Object[] getElements( Object inputElement ) {
    return books.toArray();
    }
    ...
    public class BooksLabelProvider implements ITableLabelProvider {
    public String getColumnText( Object element, int columnIndex ) {
    String result = null;
    if( columnIndex == 0 ) {
    if( element instanceof Book ) {
    result = ( ( Book )element ).getTitle();
    ...

    除了API的简洁性之外,使用SWT的其他优点是Eclipse社区中提供了文档,示例和支持。 Tabris的标准功能包括处理大数据,使用OSGi进行应用程序模块化设计以及基于模型的用户界面的集成。

    底层体系结构实现了与已建立的Java技术的简单集成。 Tabris的瘦客户端体系结构当然可以与Web服务器和Web浏览器进行比较,而Web应用程序逻辑是在服务器端执行的。 随附的UI以HTML格式交付并在浏览器中呈现。 在Tabris的情况下,应用程序逻辑也在服务器(例如JEE应用程序服务器)上执行。 本机客户端(例如平板电脑)连接到服务器,并以JSON形式接收UI的表示形式。 但是Tabris客户端代替了基于HTML的UI,而是呈现了本机小部件,从而创建了特定于平台的用户体验。

    与Web应用程序一样,移动客户端始终需要连接到服务器。 对于某些应用程序,这是不可接受的限制,但是对于其他应用程序,这可能是真正的优势。 仅为了创建接口才传输数据。 客户端根本不执行任何应用程序逻辑,它们仅用于显示UI。 而且,这意味着不会在移动终端设备上保存任何敏感的应用程序数据或算法,从而暗中保护这些数据或算法免遭盗窃或其他类型的丢失。

    该体系结构和基础开放式通信协议1的另一个有趣的优点是,可以轻松添加不同的客户端。 例如,除了移动客户端之外,还有开放源Web和桌面客户端。 例如,某些基于Windows CE或用于有限嵌入式设备(例如收银机)的客户端可以简单地使用精简的窗口小部件集实现,从而启用新的应用程序和迁移路径。

    Tabris的1.0版自2013年4月起可用。Eclipse公共许可证涵盖了服务器组件以及Web和Desktop客户端,可以在商业产品中免费使用。 商业许可证仅涵盖移动客户端。 为了亲自测试和评估Tabris的广泛可能性,可以从项目网站2下载移动客户端。

    1个 RAP /协议

    2 Tab

    翻译自: https://www.infoq.com/articles/tabris/?topicPageSponsorship=c1246725-b0a7-43a6-9ef9-68102c8d48e1

    tabris csdn

    展开全文
  • tabris1.5 issue with switch

    2020-11-28 00:50:56
    <div><p>this is a weird one. if a switch is on a CollectionView that is a child of a Tab and you set it's "selection" property to true (false works!...eclipsesource/tabris-js</p></div>
  • tabris-js-project-structure 跑 如果尚未这样做,请在上安装 : npm i tabris-cli -g 然后在项目目录中,键入: npm start 或从Visual Studio Code任务运行器中选择“ npm:start”,使编译错误出现在“问题”...
  • Facing issue in tabris serve

    2020-11-28 00:39:36
    when i am going to do <strong>tabris serve</strong> it will run sucessfully but when i am going to see my app in browser it will give me error <strong>You don't have authorisation to view this ...
  • 移动应用的开发平台 Tabris ,Tabris.js 是RAP mobile的新名称,这是一个用于帮助开发者构建iOS、Android...
  • tabris run ios syntax error

    2020-11-28 00:44:23
    <div><p>tabris run syntax error <p><img width="648" alt="ekran resmi 2017-10-03 20 02 54" src=...
  • I have problem i try run tabris example app on computer (Windows 10, node 10.12.0) i use command: tabris serve: <p>` npm run --if-present build <p>test_app.1.0 build C:\tabris tsc -p . <p>...
  • <div><p>Firebase for admob</p><p>该提问来源于开源项目:eclipsesource/tabris-js</p></div>
  • Tabris.js 是个跨平台移动框架,使用原生的部件,是 JavaScript 原生应用框架。Tabris.js 可以使用 JavaScript 来开发 iOS 和 Android 原生应用。 标签:Tabris
  • <div><p>We should have a blog post or a part in the documentation that explains the architecture of Tabris.js. - JS library - native clients - JS execution environment - How does JS inteact with the...
  • <div><h3>Problem description <p>While cordova plugins to capture images exist, they tend to break or lack functioanllity. In addition it is not possible to embed the ...eclipsesource/tabris-js</p></div>
  • <div><p>Can you provide examples of real applications on tabris-js?</p><p>该提问来源于开源项目:eclipsesource/tabris-js</p></div>
  • t use Firebase in my Tabris app. I keep getting a Reference error for process. <p>I've tested firebase with a standard node application and it works fine which leads me to believe I maybe missing ...
  • <div><p>Want to give notifcation when new items (feeds) arrive when app is not in view.</p><p>该提问来源于开源项目:eclipsesource/tabris-js</p></div>
  • <div><p>If launch screens are not overridden in <code>config.xml, the default Tabris.js launch screens are shown. <p>This is not expected for production apps and the default configuration should be ...
  • <div><p>Log from console: <pre><code> [./] Copying Cordova files to build/cordova ... ...added 1 package and audited 52 packages in 1.694s found 0 vulnerabilities ...eclipsesource/tabris-js</p></div>
  • <p>warning: ignoring file /Users/david/apptest6/build/cordova/platforms/ios/Tabris/Tabris.framework/Tabris, missing required architecture i386 in file /Users/david/apptest6/build/cordova/platforms/ios...
  • <div><p>It can be my mistake but all the cordova plugins I installed that use the contentProvider or media provider feature make a Tabris application crash. ...eclipsesource/tabris-js</p></div>
  • tabris-cli re-build error

    2020-11-28 00:37:34
    <ol><li>tabris build android first build no problem but re-build problem</li></ol> <h3>Environment <ul><li>Tabris.js version: 2.3.0</li><li>Cordova Version : 8.0</li><li>Device: Huawei Mate 10 Lite...
  • <div><p><a href="https://github.com/eclipsesource/tabris-js/files/992631/errors.txt">errors.txt create a new project with <code>tabris init edit cordova/confix.xml insert <pre><code> <plugin name&#...
  • <div><p>How can I extend android tsbris theme. I know we can set some hi bits but I need to know how to extend the default theme . The reason I need this is because ...eclipsesource/tabris-js</p></div>
  • 注:我翻译了Tabris.js中文文档,欢迎star。 Tabris.js是一个移动应用开发框架,支持完全用JavaScript实现的一套代码来开发iOS、Android、Windows应用;个人观点,如果React Native的上手难度系数是8,那么Tabris....
        

    注:我翻译了Tabris.js中文文档,欢迎star。

    Tabris.js是一个移动应用开发框架,支持完全用JavaScript实现的一套代码来开发iOS、Android、Windows应用;个人观点,如果React Native的上手难度系数是8,那么Tabris.js的上手难度系数应该不到6。

    • 文档清晰,非常适合前端开发人员的开发思路
    • 支持线上构建,不需要做复杂的本地环境配置,只需要安装一个开发者app就可以调试应用
    • 不需要webview
    • 支持npm包,并以Node.js的方式引入模块
    • 支持cordova插件(开发者app默认内置摄像头调用、扫码、陀螺仪、谷歌服务等cordova插件)
    • 支持fs,支持ES6、TypeScript和JSX,支持WebSocket等W3C API
    • 对于ui定制性不太强的应用,几乎只需花点时间浏览文档,就可以撸起袖子开干了

    快速开始

    详情参考快速开始指南

    初始化工程

    npm install -g tabris-cli // 安装tabris的命令行工具
    tabris init // 初始化工程
    tabris serve // 开启开发服务器,开启成功后会打印服务器地址

    然后需要下载Tabris.js的开发者app,用于预览你本地开发的app;iOS直接在app store下载,Android下载需要翻墙,如果不想翻墙,可以在这里下载Tabris.js开发者app。Tabris.js也支持在线编辑代码,然后本地预览,参考Play with the Playground
    接着在开发者app中连接你本地的服务器,连接成功后就可以看到你的app界面了,如下图所示。随意修改app.js,在开发者app的控制台中点击刷新按钮,查看你的修改结果(修改结果加载到开发者app中可能有一定延时)。

    clipboard.png

    clipboard.png

    创建原生控件

    详情参考控件基础知识

    创建控件

    Tabris.js使用JavaScript来声明控件(也可以在TypeScript中使用JSX)

    let button = new Button({
      left: 10,
      top: 10,
      text: 'OK'
    });

    事件

    on()方法为控件绑定事件,用off()方法注销事件

    button.on('select', (event)=>{
        console.log(event.target);
    });
    button.off('select')

    将控件加入视图

    为了使控件可见,每个控件都必须有一个父控件(除了根控件)。将控件添加进父控件:

    button.appendTo(parent);
    parent.append(button);

    遍历

    支持选择器表达式:*Type.class#id

    parent.find('Button');
    parent.find('#id');
    parent.children().last();

    布局

    直接使用topbottomleftright属性等来布局,参考布局

    动画

    button.animate({
      opacity: 0,
      transform: {
        translationX: 200,
        scaleX: 0.1
      }
    }, {
      duration: 1000,
      easing: 'ease-out'
    }).then(() => label.dispose());

    可以看到,这完全是在写操作DOM的前端代码嘛;但Tabris.js里没有DOM,Tabris.js根据JavaScript代码,完全用原生控件来渲染界面。

    UI模型

    详情参考UI模型

    ui对象是所有控件的顶级父控件(可以简单地理解为web里的body),ui对象包含一些固定的子控件,Tabris.js app的用户界面主要由这些控件搭建起来:

    • ui.statusBar - 状态栏,显示时间和一些系统图标

    clipboard.png

    • ui.navigationBar - 在Android中,用于包含Back、Home等按钮

    clipboard.png

    • ui.contentView - app的主界面(内容界面)
    • ui.drawer - 可以从左侧滑入的抽屉

    clipboard.png

    通常app用ui.statusBarui.contentView两部分组成就行了。

    页面导航(路由)

    Tabris.js有两种导航模式,即Page(分页)Tab(选项卡)
    Page可以简单地理解为子页面的容器,一般配合NavigationView(一个覆盖了整个ui.contentView的容器)以及一个Action(顶部导航)来达到导航的目的。如下是一个简单示例:

    const {Button, NavigationView, Action, Page, ui} = require('tabris');
    
    const navigationView = new NavigationView({
        left: 0, top: 0, right: 0, bottom: 0
    }).appendTo(ui.contentView);
    navigationView.append(new Action({}));
    
    const button = new Button({
        text: 'Create another page'
    }).on('select', () => {
        new Page({title: 'another page'}).appendTo(navigationView);
    });
    
    const index = new Page({title: 'index'});
    index.append(button);
    
    navigationView.append(index);

    效果如图:

    clipboard.png

    clipboard.png

    Tab用app顶部或底部的导航选项卡来导航,每一个Tab可以理解为一个页面。Tab需要一个TabFolder来作为其容器。Page和Tab可以组合使用,比如在上述代码中的index页面中添加一个Tab导航:

    const {TabFolder, Tab} = require('tabris');
    const tabFolder = new TabFolder({
        left: 0, top: 0, right: 0, bottom: 0,
        tabBarLocation: 'bottom'
    });
    index.append(tabFolder);
    creatTab('tab1');
    creatTab('tab2');
    creatTab('tab3');
    
    function creatTab(name) {
        new Tab({
            title: name,
            image: {src: 'src/img/girl.png'}
        }).appendTo(tabFolder);
    }

    效果如图:

    clipboard.png

    杂项

    触摸事件

    支持通用的taplongpresspanswipe事件,参考触摸事件

    W3C API

    支持console计时器XMLHttpRequestFetchWebSocketlocalStorage等W3C API,可以无障碍使用。

    Cordova插件

    在Tabris.js开发者app中默认集成了摄像头调用、扫码、陀螺仪、谷歌服务等Cordova插件。要集成其他Cordova插件,只需要在./cordova/config.xml文件中添加<plugin />标签,以添加相机插件为例:

    <plugin name="cordova-plugin-camera" spec="^2.3.0" />

    为了在添加其他插件后,方便调试,可以在添加插件后,到免费在线构建平台构建一个包含你的插件的调式版本(相当于自定义的Tabris.js 开发者app)。

    构建app

    Tabris.js支持在线免费构建,这是最吸引我的一点,不用做任何本地配置就可以调试、打包(对于前端工程师来说,复杂的本地配置既麻烦还容易出各种问题,并且我没有Mac来构建iOS应用,哭)。构建配置也非常简单,参考构建app

    app补丁

    Tabris.js支持热更新。你只需要提供一个目录结构和app目录结构相同的zip文件,然后提供一个下载补丁的url,然后执行app.installPatch,Tabris.js就会下载你的补丁并替换对应目录中的文件。

    app.installPatch(patchUrl, (error, patch) => {
      if (error) {
        // show error dialog
      } else {
        // confirm reload
        app.reload();
      }
    });

    总结

    总的来说,个人认为,在不需要webview的js app开发框架中(如React Native、NativeScript、weex等),该框架是最易上手的,调试、打包、发布一条龙。
    但也有缺点,框架中简单易用的控件可定制性不强,开发过程中有点束手束脚的感觉,有时只能妥协使用其固有样式,或者只能取巧来实现某些逻辑(从另一个角度说,这也省去了很多设计的工作,反正我是不会设计)。如果业务场景稍复杂或者样式比较特别,还是需要自己介入原生代码开发组件。

    展开全文
  • 近几个月来,致力于创建跨平台移动应用程序而不必摆脱Java局限的大量项目确实在加速。 从以客户端为中心的选项(例如Codename One和J2ObjC)到服务器端解决方案... Tabris 由 EclipseSource 创建, 昨天发布了第一...

    tabris csdn

    近几个月来,致力于创建跨平台移动应用程序而不必逃避Java的束缚的大量项目确实加速了。 从以客户端为中心的选项(例如Codename One和J2ObjC)到服务器端解决方案(例如ICEmobile),许多公司已经意识到了Java到移动设备的迫切需求,并且至关重要的是尽快实现。

    经过三年的发展,另一个已经进入竞争状态。 Tabris EclipseSource 创建, 昨天发布了第一个主要版本 ,被称为“用于本地移动应用程序的跨平台开发的第一个Java工具包”。

    尽管这不一定是正确的,但Tabris允许用户在单个代码库中编写iOS和Android应用程序。 该技术位于EclipseSource的远程应用程序平台RAP之上,该平台 于11月重新命名, 以承认它已经超越了浏览器。

    通过RAP的JSON协议,开发人员可以 快速 为浏览器编写Web应用程序。 Tabris建立在这一概念 通过添加iOS和Android客户端 其转化RAP协议消息成其天然对应物。 最新版本还包括 Tabris UI API ,这是一个从Java的SWT API大量借用的UI框架,并允许 为该应用程序 创建 框架。


    对RAP的严重依赖(假设Tabris是它的扩展)对那些不愿学习平台绳索的人来说是一个选择。某些人可能还因为缺少Windows Phone或Blackberry客户而感到担忧。 在2010年4月最初构思该项目时,重点仅放在iOS和Android客户端上。 Tabris的服务器端开发人员Holger Staudacher告诉jaxenter.de,这是因为他们当时是“大玩家”,但是有“未来客户”计划。

    Tabris是又一个针对核心Java开发人员的项目,该Java开发人员正在寻求快速的移动修复,而又不会将他们推入新的领域。 但是,Tabrs团队在过去的一年中一直在确保提供足够的支持,而不是匆忙发布版本,自2012年1月以来已达到14个主要里程碑。它是否可以在已经竞争激烈的市场中取得进展是另一个问题。


    翻译自: https://jaxenter.com/tabris-taps-into-java-mobile-app-market-with-first-major-release-105955.html

    tabris csdn

    展开全文
  • <ul><li>Tabris.js version: 2.1.1</li><li>Device: xiaomi mi5</li><li>OS: Android 7.1</li></ul> <p><img alt="a" src=...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 790
精华内容 316
关键字:

Tabris