我想分别使用不同于网站或 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 的新手,但我发现这种方法似乎有效:
web
和 mobile
我有两个不同的父模板。还有一个 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/