javascript - meteor : Cordova 和网站的不同(铁)路线

标签 javascript cordova service meteor iron-router

我想分别使用不同于网站或 Web 应用程序的智能手机应用程序构建服务。 我的想法是在 iron router 中使用不同的路由表,如下所示:

/客户端

  • 路由.js

/ Cordova

  • 路由.js

...

另外,文件可以用“if (Meteor.isCordova) {”和“if (Meteor.isClient) {”括号括起来。

到目前为止我试过这个:

Router.map(function() {
  if (Meteor.isCordova) {
    this.route('homeCordova', {
      path: '/'
    });
  }

  if (Meteor.isClient) {
    this.route('homeWeb', {
      path: '/'
    });
  }
}

它适用于路径,但不适用于布局,所以

if (Meteor.isCordova) {
    Router.configure({
      layoutTemplate: 'mainLayoutCordova',
      loadingTemplate: 'loadingCordova',
...

  if (Meteor.isClient) {
    Router.configure({
      layoutTemplate: 'mainLayout',
      loadingTemplate: 'loading',
...

不去。

作为替代方案,我可以在我的服务器上同时运行两个不同的 Meteor-Apps 吗?这有什么意义吗?

知道如何修复它或如何解决这个问题吗?

example-app localmarket 只有智能手机应用程序,因此只有 1 个 router.js 文件,反之,如果您已登录,WebApp 看起来与手机上的几乎一样。

问候

最佳答案

我是 Meteor 的新手,但我发现这种方法似乎有效:

webmobile 我有两个不同的父模板。还有一个 main 模板,它根据 environment 变量动态地提供一个或另一个。

<body>
  {{> main}}
</body>

<template name="main">
  {{> Template.dynamic template=environment}}
</template>

<template name="web">
  <h2>On the Web</h2>
</template>

<template name="mobile">
  <h2>On a Phone</h2>
</template>

main 帮助程序根据 Meteor.isCordova 的值更改 environment 变量。

Template.main.helpers({
  environment: function() {
    return Meteor.isCordova ? "mobile" : "web");
  }
});

这可能过于简单并且不涉及任何路由,但作为一种在客户端上为两个不同的应用程序提供服务的方式,它似乎可行。

关于javascript - meteor : Cordova 和网站的不同(铁)路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26937506/

相关文章:

javascript - 为什么javascript写的是width

javascript - JQuery hide()/show() 适用于 FF/IE,但不适用于 Chrome

javascript - 将鼠标悬停在 canvas 的多幅图像中的 1 幅图像上

javascript - Phonegap 固定页眉和页脚

symfony - 通过注入(inject)加载服务时出现问题

c++ - 使用 gdb 调试 linux 守护进程的初始启动

javascript - Jquery - 在主页正文点击时隐藏 iframe 内容

android - ionic : Getting Error Code 3 when uploading image using ng-cordova fileTransfer and Camera plugin

delphi - 不间断服务

javascript - JavaScript 中的正则表达式表达式验证