我如何在Titanium appcelerator中远程包含一个javascript文件并使用该文件的功能?

时间:2014-06-23 13:07:11

标签: javascript scripting appcelerator

我需要远程包含到我的appcelerator项目中,在特定链接上提供的javascript文件,并使用该文件中声明的函数来处理一些数据。

我希望实现的内容类似于html中的以下内容 -

<script src="https://some-link/Data.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
var testVariable = someMethod(localdata);
});
//use testVariable as necessary
</script>

// someMethod()在远程可用的Data.js

中声明

我是Appcelerator的新手,我真的无法关注我遇到过的一些主题,所以非常感谢一些详细的帮助。提前谢谢。

1 个答案:

答案 0 :(得分:1)

根据我的说法,你首先应该先了解几点:

  1. 您希望包含托管在某个服务器上的远程文件,现在当Titanium代码在编译时转换为本机代码时,您不能从远程文件中包含Titanium API。
  2. 如果您想要包含远程文件,那么我看到的唯一选项就是在webview中加载该文件。
  3. 现在出现问题,正如你所说,你想通过从远程文件触发一些JS函数来从远程服务器获取一些数据。以下是我将要做的事情: -

    a /在我的主窗口中使用webview的EventListener创建一个隐藏的webview。类似的东西:

    var webview = Titanium.UI.createWebView({url:'localHtmlFile.html'});
    
    //event listener to handle the response from webview
    Ti.App.addEventListener('fromWebView', function(e) 
    { 
        var testVariable = e.data; 
    });
    

    b /在localHtmlFile.html文件中:

    <!DOCTYPE html>
    <html>
    <body>
         <script src="https://some-link/Data.js" type="text/javascript"></script>
         <script type="text/javascript">
         $(document).ready(function(){
              var testVariable = someMethod();
              //respond the fetch data to the main window via fireEvent
              Ti.App.fireEvent( 'fromWebView', { data : testVariable } );
         });
         </script>
    </body>
    </html>
    

    PS:这只是一个逻辑,您必须根据您的要求编辑代码