标签: appcelerator

如何使用javascript调用钛中的WebService

我是钛的新手,想从我的钛应用程序中调用一个Web服务.webService返回json响应.因为我知道调用webService使用XMLRPC但非常混淆json.

到现在为止,我知道我们必须创造HTTPClient.

var request = Titanium.Network.createHTTPClient();
request.open("POST", "http://test.com/services/json");
request.onload = function() {
    var content = JSON.parse(this.responseText);//in the content i have the response data
};

request.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //did not understand this line
request.send();
Run Code Online (Sandbox Code Playgroud)

现在问题是如果我的url(端点)有许多WebServices,那么我将给出方法名称,即要调用的WS名称.

从钛移动的API文档的功能open,即request.open接受3个参数:

  1. 方法名称(http方法名称)

  2. 请求的网址

  3. async(boolean property)默认为true.

在上面的代码那里"POST"做什么?如果我的WS名称,system.connect那么我将在代码中提到它?

如果WS需要参数,那么我们如何将参数发送到上面代码的webService.

我知道request.send()可以用来发送参数但是如何?

javascript titanium appcelerator appcelerator-mobile titanium-mobile

4
推荐指数
1
解决办法
1万
查看次数

Facebook应用程序是使用PhoneGap或Appcelerator等移动开发框架构建的吗?

我发现有很多 消息来源将Facebook应用程序作为混合应用程序的一个例子.

据我所知,Hybrid App这个术语被广泛定义为在本机应用程序中包装WebView的任何智能手机应用程序.

有手机开发框架(PhoneGap,Appcelerator等),使开发人员能够使用他们现有的网络开发技能(HTML5,Javascript,CSS)构建应用程序,同时提供对核心电话功能(相机,地址簿等)的访问.

因此,由于Facebook是一个混合应用程序,可以访问手机的核心功能,如推送通知和相机,我很好奇:

Facebook应用程序是使用移动开发框架构建的吗?

facebook appcelerator push-notification hybrid cordova

4
推荐指数
1
解决办法
1万
查看次数

使用钛的百分比进行流体/响应式设计

无论如何使用Titanium Appcelerator来使用百分比.用于流体和响应设计; 否则看起来我会为所有设备的IF ELSE语句而烦恼!

原始代码

    WebViewWindow=Titanium.UI.createWebView({
    html:globalHTMLHeadert,
    visible:true,
    width:100%, //note I have tried also "100%" with/out comma
    left:0,
    bottom:30%,
    zIndex:400
});
Run Code Online (Sandbox Code Playgroud)

我想要

WebViewWindow=Titanium.UI.createWebView({
    html:globalHTMLHeadert,
    visible:true,
    width:320,
    left:0,
    bottom:150,
    zIndex:400
});
Run Code Online (Sandbox Code Playgroud)

mobile titanium appcelerator responsive-design

4
推荐指数
1
解决办法
4463
查看次数

如何在sqlite中获取最后一个插入的行id

function insertToProject(cast, pName)
{
    db.execute('INSERT INTO project (cd, pn) VALUES (?,?)', cast, pName);
        var x = last_insert_rowid();
        return x;
}
Run Code Online (Sandbox Code Playgroud)

我一直在使用钛appcelerator中的javascript尝试这个.谁能告诉我我做错了什么?

javascript sqlite titanium rowid appcelerator

4
推荐指数
1
解决办法
5669
查看次数

Appcelerator和CommonJS模块(缓存和循环引用)

这是事情:

我正在使用CommonJS方式使我的移动(iPhone/Android)应用程序模块化.这并不奇怪.但有一点我无法理解.

CommonJS让我创建了STATIC私有变量,这让我可以轻松创建单例.至少,我认为这是因为获取require()d 的文件的内容只读取一次,然后每次都返回export对象(只初始化一次).

但是当我创建如下所示的循环引用时,每次都会执行包含模块内的代码.

等等...... 有趣的是,在我写这个问题的时候,我突然意识到require()在下一个问题开始之前没有任何调用完成(因此下面显示了堆栈溢出).

关于我是否正常的任何想法?这是凌晨5点过来的所以,所以我所关注的所有赌注都是关闭的:D.

例子:

看到这段代码,它定义了一个单例:

/* Singleton.js */

exports.getSingleton = getSingleton;

function getSingleton(name) {
  if (!instance) {
    instance = new Thing(name);
  }

  return instance;
}

function Thing(name) {
  this.name = name;
}

var instance;
Run Code Online (Sandbox Code Playgroud)

require()这个文件是这样的:

var theFirstThing = require('Singleton').getSingleton('first');
Ti.API.info('first: ' + theFirstThing.name)

var possiblyAnotherOtherThing = require('Singleton').getSingleton('second');
Ti.API.info('second: ' + possiblyAnotherOtherThing.name);
Run Code Online (Sandbox Code Playgroud)

输出是:

[DEBUG] loading: /path/to/sim/MyApp.app/app.js, resource: app_js
[DEBUG] loading: /path/to/sim/MyApp.app/Singleton.js, resource: Singleton_js
[INFO] first: first
[INFO] second: first
Run Code Online (Sandbox Code Playgroud)

为什么那样的循环引用如下所示不起作用?(如果你愿意的话,我可能已经自己研究了这个,评论/回答). …

titanium circular-reference appcelerator commonjs

4
推荐指数
1
解决办法
1926
查看次数

Parse vs. StackMob与其他推送通知服务(Appcelerator应用程序)

我们在Appcelerator中完成了一个非常基本的应用程序(iOS/Android),每周都会收到一次更新.此更新将发送给订阅推送通知服务的所有用户.

到目前为止,我们上个月在此应用程序上安装了约35,000个活动用户,但有7,000名活跃用户.我们一直在为所有推送通知评估两种服务:

  • StackMob
  • 解析

Appcelerator云服务很好,但我们不愿意支付那么多.Parse和StackMob的价格低于Appcelerator Cloud服务,通过我们的分析,我们甚至可以在两种服务上使用免费服务(StackMob = 60k推送通知+ 60k api调用,Parse 1M api调用+ 1M推送).

如果我们要使用Parse,我们需要从Marketplace购买Android和iOS模块(每个30美元/年).哪个好.在对应方面,我认为我们可以使用StackMob上的REST API来订阅推送服务.

问题:

  • 您对这两项服务有何看法?您更喜欢哪一个?为什么?
  • 您是否使用StackMob REST API订阅推送通知?
  • 你如何检索Android的令牌?
  • 这些服务是否有任何(成本效益)替代方案?我还评论了PubNub,它看起来很棒,但成本高于StackMob和Parse.

提前致谢.

更新

我在Appcelerator论坛上问了同样的问题.过了一段时间,用户回来时有几个答案和用户使用Parse.com.

我结束了Parse.com的实现,使用Appcelerator Market上的Android和iOS插件非常简单.

appcelerator push-notification stackmob pubnub

4
推荐指数
1
解决办法
4391
查看次数

Appcelerator Titanium性能

最后我在2010年使用了Appcelerators平台,即使生成一个简单的表,我也看到了非常差的性能.有没有人有机会在过去几个月尝试一下?如何使用此平台开发应用程序的整体速度?

android appcelerator ios

4
推荐指数
1
解决办法
3130
查看次数

如何在Appcelerator Titanium中增加iOS内部版本号

我正在直接从钛工作室创建分发版本,以便在iTunes Connect上进行Apple Testflight预发布测试.我目前的应用版本是1.1.1,内部版本号由钛工作室自动设置为1.1.1.

在Xcode上,大多数开发人员通常将预发布版本号(CFBundleVersion)维护为Integer,在iTunes上传之前每次增加1非常方便.从钛工作室这是不可能的!

在tiapp.xml中我设置了这个

<ios>
    <plist>
        <dict>
            <key>CFBundleShortVersionString</key>
            <string>1.1.1</string>
            <key>CFBundleVersion</key>
            <string>10</string>
        </dict>
    </plist>
</ios>
Run Code Online (Sandbox Code Playgroud)

从Titanium Studio运行后,生成的文件夹下的info.plist变为

<ios>
    <plist>
        <dict>
            <key>CFBundleShortVersionString</key>
            <string>1.1.1</string>
            <key>CFBundleVersion</key>
            <string>1.1.1</string>
        </dict>
    </plist>
</ios>
Run Code Online (Sandbox Code Playgroud)

我知道在appcelerator文档中他们已经提到了这一点,CFBundleVersion并且CFBundleShortVersionString将从<version>生成的info.plist中的标记值变为相同.

因此,现在使用Apple Testflight for Ti应用程序的唯一方法是每次在iTunes Connect上传时都增加应用程序版本(CFBundleShortVersionString)而不是build#,这绝对不是一个好方法.从Xcode我可以更改Build#,但由于某些模块和其他问题,并非所有Ti应用都会从xcode存档.

在appcelerator社区上有很多关于此问题的帖子,但还没有可接受的解决方案.有没有人在创建分发版本时有一个可以直接从Titanium Studio更改/增加构建#的工作解决方案?

提前致谢.

iphone xcode titanium appcelerator ios

4
推荐指数
1
解决办法
2070
查看次数

如何使用Alloy(appcelerator)查询(where,inner join)?

我正在尝试:

Application Mobile with Alloy
Titanium SDK version: 2.1.3 (10/02/12 16:16 15997d0)
iPhone Device family: universal
iPhone SDK version: 6.0
iPhone simulated device: iphone
Detected compiler plugin: ti.alloy/1.0
Run Code Online (Sandbox Code Playgroud)

我创造了两个模型:

alloy generate model met sql met_id:int libelle:string famille_id:int
alloy generate model famille sql famille_id:int libelle:string
Run Code Online (Sandbox Code Playgroud)

并填写以下数据:

var mets = Alloy.createCollection('Met')
var met = Alloy.createModel("Met",{met_id:1,libelle:"Salade de Chèvre Chaud",famille_id:1});mets.add(met);met.save();
var met = Alloy.createModel("Met",{met_id:2,libelle:"Salade de Chèvre Chaud",famille_id:2});mets.add(met);met.save();
var met = Alloy.createModel("Met",{met_id:3,libelle:"Salade de Chèvre Chaud",famille_id:3});mets.add(met);met.save();
var met = Alloy.createModel("Met",{met_id:4,libelle:"Salade de Chèvre Chaud",famille_id:4});mets.add(met);met.save();
var met = …
Run Code Online (Sandbox Code Playgroud)

appcelerator backbone.js titanium-alloy

3
推荐指数
1
解决办法
5156
查看次数

Appcelerator - 如何在iOS9 App中添加Universal Links支持

我想允许我的用户打开我们的应用程序(如果已安装,否则重定向到App Store应用程序页面),每当用户点击我们网站的网址时.

我发现Universal Links是从iOS-9开始实现上述要求的一种方式.我也知道Web服务器和Apple Developer门户要涵盖的要点.

唯一的问题是如何在Appcelerator Titanium app中启用Associated Domains

提前感谢任何线索或帮助.

appcelerator ios ios-universal-links appcelerator-titanium

3
推荐指数
1
解决办法
1004
查看次数