标签: titanium

javascript中的self和this之间的区别以及何时使用它们中的任何一个

可能重复:
这个JavaScript习语的基础是:var self = this?

我很困惑,什么时候使用自我和这在JavaScript中.
我知道是指当前的上下文,而self指的是当前窗口.
当我在Titanium中开发应用程序时.我想知道何时使用自我或者这个 或者确实在钛开发中有任何自我概念.

这是我在钛commonJS模块中执行的示例代码

var auth = require('/SDKTest/auth');
var nodeAPI = require('/SDKTest/nodeAPI');
function myAPI() {
     this.auth = auth;
     this.nodeAPI = nodeAPI;
     return this;
    }
module.exports = myAPI;
Run Code Online (Sandbox Code Playgroud)

此代码的工作,但我可以用自己代替这个?而不是使用这个,我可以创建一个命名空间,并做这样的事情:

  function myAPI() {
     var api = {};
     api.auth = auth;
     api.nodeAPI = nodeAPI;
     return api;
    }
Run Code Online (Sandbox Code Playgroud)

这两种方法都有效,但在这里使用的用途是什么

javascript titanium

11
推荐指数
2
解决办法
5729
查看次数

OA自定义URL方案拒绝工作/如何在OAuth之后导航回Android应用程序

编辑,请在这个问题下面看到我的第二个答案,以便更简洁,更简单地显示问题


我终于打败了我的智慧.我正在使用钛的跨平台应用程序(IOS和Android),并通过休息呼叫连接到salesforce api.我在这个问题上花了3天20个小时,但仍然陷入困境.任何支持将非常感谢!所以让我们潜入.

我想要它做什么: 应用程序启动,检查用户是否已使用oauth2授权给予令牌,如果没有,则为用户提供salesforce登录屏幕.用户输入凭据并点击"允许"按钮,然后我们被重定向回应用程序.

问题: 从上面我想要它做的描述一切都有效,除了粗体的最后一行.一旦用户点击"允许"按钮,我们就会收到此未知的网址方案错误:

error

代码: 代码几乎由3个不同的重要区域组成

  • 我的index.js文件,它是进行salesforce登录调用的地方
  • 我的AuthService.js文件,它是index.js中调用salesforce url信息的位置
  • 我的tiapp.xml,其中配置的东西是为Android自定义url方案

index.js

var Auth = require('AuthService');

Auth.openLogin();
Run Code Online (Sandbox Code Playgroud)

AuthService.js这里只有"openLogin"函数非常重要.

var loginWindow;

module.exports = {

  get: function () {
    console.log("made it into the auth.get function");
    return Ti.App.Properties.getObject('auth');
  },

  set: function (data) {
    Ti.App.Properties.setObject('auth', data);
    console.log("auth set function was executed!!!");
  },

  erase: function () {
    Ti.App.Properties.removeProperty('auth');
  },

  openLogin: function () {

    console.log("made it into openLogin!!");


   var webview = Titanium.UI.createWebView({url:'https://login.salesforce.com/services/oauth2/authorize' +
      '?response_type=token&display=touch' +
      '&redirect_uri=testapp://app.open' +
      '&client_id=' + Ti.App.Properties.getString('salesforce_client_id')});


      //console.log("Webview …
Run Code Online (Sandbox Code Playgroud)

rest android salesforce titanium appcelerator

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

与JS"使用前定义"和Titanium Developer竞争

我有一个冗长的JavaScript文件传递JSLint,除了"在定义之前使用"错误.

我使用了正常的函数声明,如...

function whatever() {do something;}
Run Code Online (Sandbox Code Playgroud)

而不是......

var whatever = function(){do something;};
Run Code Online (Sandbox Code Playgroud)

史蒂夫哈里森对早期帖子的回复一致......

假设您使用function关键字声明所有函数,我认为它成为一个编程风格的问题.就个人而言,我更喜欢以一种看似合乎逻辑的方式构造我的函数,并使代码尽可能可读.例如,和你一样,我会在顶部放置一个init函数,因为它是从一切开始的地方.

...我喜欢按照对我有意义的顺序查看功能.

该脚本在几个测试的浏览器中完美运行(例如,FireFox,Safari,Mobile Safari,Fennec,IE,Chrome,Midori等).

这就是问题所在:我想在使用Titanium构建的iPhone应用程序中使用该脚本,但其编译器会因"使用前定义"错误而停止.

我怎么能绕过这个?

这可能是一个愚蠢的问题,但也......如果函数需要以特定的顺序调用,如何解决需要回调最初调用它的函数的被调用函数的问题?例如...

function buildMenu(){
     Display a list of five menu items, each of which calls a function to build the associated screen.
}

function screen1() {
     Display the screen associated with menu item #1.
}
Run Code Online (Sandbox Code Playgroud)

如果函数需要按顺序声明,则function screen1需要先于function buildMenu.但是,如果在某些情况下,无法构建screen1并因此想重新显示菜单(即调用技术上尚未声明的函数),该怎么办?

哦,是的......还有一个问题:是否有网站或程序会自动重新排序函数,而不是要求程序员手动完成?

javascript jslint titanium

10
推荐指数
1
解决办法
6764
查看次数

Xcode重复符号_main

每当我尝试编译Appcelerator Titanium生成的任何iPhone应用程序时,我在Snow Leopard 10.6.2上的Xcode 3.2.1中都会出现以下错误.但是,仅当我在架构菜单上选择iPhone模拟器时才会出现构建错误,如果我选择iPhone设备,我可以在我的设备上运行该应用程序.

此外,iPhone模拟器成功启动并直接从使用Xcode构建的Titanium环境执行程序.

为什么会这样?

ld: duplicate symbol _main in Resources/libTitanium.a(main.o) and /Users/prithviraj/Documents/project/Final/build/iphone/build/Final.build/Debug-iphonesimulator/Final.build/Objects-normal/i386/main.o collect2: ld returned 1 exit status Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1

iphone xcode xcodebuild titanium

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

钛开新网址

我想在用户点击图片时在默认浏览器中打开一个新网址.我查看了Titanium.Platform.openURL,但不知道如何使用它.

任何帮助表示赞赏

html javascript css macos titanium

10
推荐指数
1
解决办法
8757
查看次数

appcelerator vs phonegap vs原生XCode加快产品上市速度

Titanium声称它可以做同样的应用程序平均比原生XCode快70%.

在开发速度差异方面(原生XCode和PhoneGap或钛之间),其他人的经验是什么?

让我们说一个像Kik Messenger或Badoo的应用....

通常,一个优秀的XCode开发人员可以在4-5周内完成它,假设图形和后端到位.

经验丰富的Titanium(HTML5)人员需要什么才能实现这一目标?(大致)

iphone titanium appcelerator ios cordova

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

我如何删除应用程序中的选定人员(Titanium- Android)?

我使用getAllPerson()函数并显示TableView中的所有人我想删除所选人员.但removePerson()仅支持iphone,我如何删除Android.任何建议表示赞赏

android titanium

10
推荐指数
1
解决办法
324
查看次数

Titanium Appcelerator - 我应该使用合金框架吗?

我正在使用Titanium Appcelerator开发应用程序.

这是一个简单的iOS抽认卡应用程序,允许用户滚动选择的外来单词,并查看卡片"另一面"的等效英文翻译(翻转过渡!).每张卡都有一个音频链接,还有一些选项供用户选择.

我想知道是否有人推荐使用合金框架
它会加快开发时间吗?
是否存在合金不合适的用例?

titanium appcelerator titanium-mobile

10
推荐指数
1
解决办法
8009
查看次数

Facebook apprequests对话框总是返回取消的Titanium Android?

我正在使用facebook 3.0.1钛模块.在Android中,Facebook apprequests对话框始终返回为已取消,即使实际的apprequest已发送,也可以在Facebook上看到.因此,我无法将请求存储在我的后端,这使得apprequest无用.

但在iOS中它工​​作正常.

这是我的代码

var fb = require('facebook');
fb.appid = 'my_app_id';
fb.permissions = ['publish_stream', 'read_stream', 'email']; // Permissions your app needs
fb.forceDialogAuth = true;

fb.addEventListener('login', function(evt) {
    if (evt.success) {
            fb.dialog("apprequests", {
              message:"LeaugeNation",
              // max_recipients : "2"
            }, function(response) {   
                alert(JSON.stringify(response));
                if(response.result) {
                        alert("send friend req");
                        // sendFacebookInvite(e.result);                                    
                    }    
            });

    } else if (evt.error) {
        alert("error");
    } else if (evt.cancelled) {
        alert("cancelled");

    } else {
            alert("default");
    }
});

fb.authorize();
Run Code Online (Sandbox Code Playgroud)

如果我运行代码我得到以下结果

{"cancelled":true,"code":-1,"success":false}

我做了以下更改,但没有得到结果.

  • 更改appid不会改变结果
  • 改变了Facebook App的Key Hash

提前致谢.

你能告诉我我想要在Android上获得正确结果的变化吗?

android titanium facebook-javascript-sdk titanium-modules titanium-mobile

10
推荐指数
1
解决办法
466
查看次数

钛处理不同的资源

简单的问题,这是确保应用程序在不同的屏幕分辨率下工作而不看废话的最佳方法?我不能使用静态值,那么它需要根据分辨率进行调整.现在我正在使用相对测量(屏幕百分比),但想知道这是否真的是最好的处理方式!?

resolution titanium android-layout

9
推荐指数
2
解决办法
2万
查看次数