(window.webpackJsonp=window.webpackJsonp||[]).push([[101],{425:function(t,s,a){"use strict";a.r(s);var n=a(17),e=Object(n.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("p",[s("code",[t._v("uni-app")]),t._v(" App 端内置 "),s("a",{attrs:{href:"https://www.html5plus.org/doc/",target:"_blank",rel:"noopener noreferrer"}},[t._v("HTML5+"),s("OutboundLink")],1),t._v(" 引擎,让 js 可以直接调用丰富的原生能力。")]),t._v(" "),s("ul",[s("li",[t._v("条件编译调用 HTML5+")])]),t._v(" "),s("p",[t._v("小程序及 H5 等平台是没有 HTML5+ 扩展规范的,因此在 "),s("code",[t._v("uni-app")]),t._v(" 调用 HTML5+ 的扩展规范时,需要注意使用条件编译。否则运行到h5、小程序等平台会出现 "),s("code",[t._v("plus is not defined")]),t._v("错误。")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// #ifdef APP-PLUS")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" appid "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" plus"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("runtime"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("appid"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nconsole"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'应用的 appid 为:'")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" appid"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// #endif")]),t._v("\n")])])]),s("ul",[s("li",[s("p",[s("code",[t._v("uni-app")]),t._v("不需要 "),s("code",[t._v("plus ready")]),t._v("\n在html中使用plus的api,需要等待plus ready。\n而"),s("code",[t._v("uni-app")]),t._v("不需要等,可以直接使用。而且如果你调用plus ready,反而不会触发。")])]),t._v(" "),s("li",[s("p",[s("code",[t._v("uni-app")]),t._v(" 中的事件监听")])])]),t._v(" "),s("p",[t._v("在普通的 H5+ 项目中,需要使用 "),s("code",[t._v("document.addEventListener")]),t._v(" 监听原生扩展的事件。")]),t._v(" "),s("p",[s("code",[t._v("uni-app")]),t._v(" 中,没有 document。可以使用 "),s("code",[t._v("plus.globalEvent.addEventListener")]),t._v(' 来实现(注意manifest中需开启新编译器,即自定义组件模式"usingComponents":true)。')]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// #ifdef APP-PLUS")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 监听设备网络状态变化事件")]),t._v("\nplus"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("globalEvent"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addEventListener")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'netchange'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// #endif")]),t._v("\n")])])]),s("p",[t._v("同理,在 "),s("code",[t._v("uni-app")]),t._v(" 中使用 Native.js 时,一些 Native.js 中对于原生事件的监听同样需要按照上面的方法去实现。")]),t._v(" "),s("p",[t._v("注意:旧编译器(非自定义组件模式)不支持 "),s("code",[t._v("plus.globalEvent")]),t._v(" 这个对象。")])])}),[],!1,null,null,null);s.default=e.exports}}]);