2013-03-29 17 views
1

我有一个很大的HTML5应用程序,我正在使用Titanium来为它添加本机支持。最简单的hello world对我来说是:如何从WebView中引用Titanium JavaScript?

var webview = Titanium.UI.createWebView({url:'http://myApp.com'}); 
var window = Titanium.UI.createWindow(); 
window.add(webview); 
window.open(); 

但是,如果我尝试使用钛API从现有代码中它没有引用。有没有一个配置文件选项可以使我的网络应用程序可以使用Titanium API?

我刚刚发现这个在docs

Scripts downloaded from remote web servers cannot access the Titanium namespace, 
however, you can use the web view evalJS method to execute a JavaScript 
expression inside the web view, and retrieve the value of an expression. 

除了轮询的WebView的背景下,有什么办法有上下文的访问钛API?

回答

1

最佳实践我与阿龙同意,PhoneGap的听起来更好地为你想要做什么。但是,如果你仍然想在钛中做到这一点.....

简短的回答是你必须从webview运行Ti.App.fireEvent(),这将允许你运行一个函数调用来自钛的JavaScript文件。从Titanium JavaScript文件中,您可以使用Ti.App.addEventListener添加事件侦听器。

有关更详细的示例,我们需要更多的上下文。

+0

我发现在API中,却从来没有机会实现它。与PhoneGap一起去。 – user1873073

1

自己节省一些时间和使用PhoneGap的,你在做什么不是Appcelerator的

0

负荷全部采用网络视图,并用这样的代码尝试,如果你想使用Android选项菜单保持按本规范其他修改

Applicationwindow.js文件中不同的.js文件的HTML文件的事件。

功能ApplicationWindow(){

//declare module dependencies 

var All = require('ui/common/All'); 

    Tree = require('ui/common/Tree'); 

    EBOM = require('ui/common/E-BOM'); 

    MBOM = require('ui/common/M-BOM'); 

    SBOM = require('ui/common/S-BOM'); 

//create object instance 

var self = Ti.UI.createWindow({ 

    title:'Products', 

    exitOnClose:true, 

    navBarHidden:true, 

    backgroundColor:'#ffffff', 
    ///////////////////////////////////////////////////////////////////////////// 

    activity: { 

     onCreateOptionsMenu: function(e) { 

      var menu = e.menu;    

      var menuItem = menu.add({ title: "C-BOM", icon: 'Arrow-Hover.jpg' }); 

      //menuItem.setIcon("Arrow-Hover.jpg"); 

      menuItem.addEventListener("click", function(e) { 

       var all = new All(); 

         self.add(all); 

      }); 



      var menuItem = menu.add({ title: "ALL-BOM" }); 

      menuItem.setIcon("images/refresh_icon.png"); 

      menuItem.addEventListener("click", function(e) { 

        var tree = new Tree(); 

         self.add(tree); 

      }); 


      var menuItem = menu.add({ title: "E-BOM" }); 

      menuItem.setIcon("images/refresh_icon.png"); 

      menuItem.addEventListener("click", function(e) { 

        var ebom = new EBOM(); 

         self.add(ebom); 

      }); 

      var menuItem = menu.add({ title: "M-BOM" }); 

      menuItem.setIcon("images/refresh_icon.png"); 

      menuItem.addEventListener("click", function(e) { 

        var mbom = new MBOM(); 

         self.add(mbom); 

      }); 

      var menuItem = menu.add({ title: "S-BOM" }); 

      menuItem.setIcon("images/refresh_icon.png"); 

      menuItem.addEventListener("click", function(e) { 

        var sbom = new SBOM(); 

         self.add(sbom); 

      }); 


      var menuItem = menu.add({ title: "Logout" }); 

      menuItem.setIcon("Arrow-Hover.jpg"); 

      menuItem.addEventListener("click", function(e) { 

       alert("Logout"); 

      }); 

      } 

      } 

    ///////////////////////////////////////////////////////////////////////////// 

}); 

var webview = Titanium.UI.createWebView({ 

    url:'/ui/common/Login.html' 

    }); 

self.add(webview); 


return self; 

};

module.exports = ApplicationWindow;

相关问题