【问题标题】:Which bits of Titanium namespace are available inside webviews?在 webviews 中有哪些 Titanium 命名空间可用?
【发布时间】:2012-11-01 22:14:23
【问题描述】:

这里是因为我花了很长时间才自己发现这一点。

如果您有一个加载本地网页的 Titanium webview,则该网页可以访问 Titanium 命名空间。文档添加:“...特别是到 Ti.App.fireEvent 和 Ti.API 日志记录功能”。

但是,如果您实际上使用触发 Javascript 的按钮将本地网页加载到 webview 中,您会发现 Titanium 命名空间的很大一部分不可用,并且调用其中任何一个都会杀死 Javascript 线程。

那么哪些位可用,哪些不可用?查看答案。

【问题讨论】:

    标签: javascript webview namespaces titanium


    【解决方案1】:

    答案是你没有得到日志记录和事件触发的东西特别是...这两件事是你得到的全部

    提供给 webview 的 Titanium 对象如下所示:

    { 
      _event_listeners: function(),
      createEventListener: function(listener),
      getEventListenerByKey: function(key,arg),
      API: org.appcelerator.kroll.KrollLogging@40588cb8,
      App: [object]
      executeListener: function (id,data)
     }
    

    Titanium.App 对象依次包括:

    {
      addEventListener : function(eventName,listener),
      removeEventListener : function(eventName,listener),
      fireEvent : function(eventName,data)
    }
    

    任何其他钛合金都不可用。忍受它。

    【讨论】:

    • 此外,只有当事件侦听器是由打开 webview 的同一个 .js 文件创建时,从 webview 触发事件才会起作用。
    • 另外像 'require()' 这样的全局变量不可用,以防不明显。
    猜你喜欢
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    • 2012-02-21
    • 2019-07-20
    相关资源
    最近更新 更多