1

大規模な HTML5 アプリがあり、Titanium を使用してネイティブ サポートを追加しています。私にとって最も簡単なハローワールドは次のとおりです。

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

しかし、既存のコード内から Titanium API を使用しようとすると、参照がありません。その Titanium API を Web アプリで使用できるようにする構成ファイル オプションはありますか?

ドキュメントでこれを見つけました:

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 のコンテキストをポーリングする以外に、コンテキストから Titanium API にアクセスする方法はありますか?

4

3 に答える 3

1

時間を節約して phonegap を使用してください。あなたがしていることは、Appcelerator のベスト プラクティスではありません。

于 2013-03-29T23:50:22.170 に答える
0

web-viewを使用してすべてのhtmlファイルを別の.JSファイルにロードし、このコードを実行してみてください

android が必要な場合は Applicationwindow.js ファイル オプション メニューでこのコードを保持する 他の場合は変更する

あなたのイベントによると。

関数 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;

于 2013-05-10T09:31:34.217 に答える