diff --git a/Android/.project b/Android/.project
deleted file mode 100644
index d278faf3654fea5d54027d3985d78ffd7bfd766e..0000000000000000000000000000000000000000
--- a/Android/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- Android
- Project Android created by Buildship.
-
-
-
-
- org.eclipse.buildship.core.gradleprojectbuilder
-
-
-
-
-
- org.eclipse.buildship.core.gradleprojectnature
-
-
diff --git a/Android/README.md b/Android/README.md
deleted file mode 100644
index 6807676997b232f9062f133c1edda7152e59eb84..0000000000000000000000000000000000000000
--- a/Android/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# ZWeb for Android
-
-this is a nice WebView.
-
-引入方式:
-
-```gradle
-
-Gradle > v3.0
-implementation 'com.zyao89.view:zweb:1.0.3'
-
-
-Gradle < v3.0
-compile 'com.zyao89.view:zweb:1.0.3'
-
-```
\ No newline at end of file
diff --git a/Android/app/.classpath b/Android/app/.classpath
deleted file mode 100644
index 8d8d85f14359d91b012eff7597dfb1c92669a2e1..0000000000000000000000000000000000000000
--- a/Android/app/.classpath
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/Android/app/.project b/Android/app/.project
deleted file mode 100644
index ac485d7c3e627d997f59da65ac961160079a0143..0000000000000000000000000000000000000000
--- a/Android/app/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- app
- Project app created by Buildship.
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.buildship.core.gradleprojectbuilder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
- org.eclipse.buildship.core.gradleprojectnature
-
-
diff --git a/Android/app/.settings/org.eclipse.buildship.core.prefs b/Android/app/.settings/org.eclipse.buildship.core.prefs
deleted file mode 100644
index 614207d764c63089f3cee8510ee22b6d18f8e5d0..0000000000000000000000000000000000000000
--- a/Android/app/.settings/org.eclipse.buildship.core.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-#Tue Nov 21 00:46:34 CST 2017
-connection.project.dir=..
diff --git a/Android/app/build.gradle b/Android/app/build.gradle
deleted file mode 100755
index db742f1f71a06c237928d2947e20af50e6f04383..0000000000000000000000000000000000000000
--- a/Android/app/build.gradle
+++ /dev/null
@@ -1,31 +0,0 @@
-apply plugin: 'com.android.application'
-
-android {
- compileSdkVersion 26
- buildToolsVersion '27.0.1'
- defaultConfig {
- applicationId "com.zyao89.view"
- minSdkVersion 15
- targetSdkVersion 26
- versionCode 1
- versionName "1.0"
- }
- lintOptions {
- abortOnError false
- }
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- }
- }
-}
-
-dependencies {
- implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation 'com.android.support:appcompat-v7:26.1.0'
- implementation 'com.android.support.constraint:constraint-layout:1.0.2'
- compile project(path: ':z-webview')
-// implementation 'com.zyao89.view:zweb:1.0.2'
- implementation 'com.squareup.okhttp3:okhttp:3.9.0'
-}
diff --git a/Android/app/proguard-rules.pro b/Android/app/proguard-rules.pro
deleted file mode 100755
index f1b424510da51fd82143bc74a0a801ae5a1e2fcd..0000000000000000000000000000000000000000
--- a/Android/app/proguard-rules.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-# public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile
diff --git a/Android/app/src/main/AndroidManifest.xml b/Android/app/src/main/AndroidManifest.xml
deleted file mode 100755
index 67c7e8763d863f8df8ed2007249bc64feca2c4b5..0000000000000000000000000000000000000000
--- a/Android/app/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Android/app/src/main/assets/index.html b/Android/app/src/main/assets/index.html
deleted file mode 100644
index e4552e9e2171515c7f5f0e9c48bddbb3409b49a0..0000000000000000000000000000000000000000
--- a/Android/app/src/main/assets/index.html
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
- hybird-app
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Android/app/src/main/assets/static/css/app.css b/Android/app/src/main/assets/static/css/app.css
deleted file mode 100644
index 1e6a33e51eae5ae39542c74c247e7a652e6bf266..0000000000000000000000000000000000000000
--- a/Android/app/src/main/assets/static/css/app.css
+++ /dev/null
@@ -1,2 +0,0 @@
-#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50}h1[data-v-61456717],h2[data-v-61456717]{font-weight:400}ul[data-v-61456717]{list-style-type:none;padding:0}li[data-v-61456717]{display:inline-block;margin:0 10px}a[data-v-61456717]{color:#42b983}.hello[data-v-61456717]{margin-top:60px}a.skiplink{position:absolute;clip:rect(1px,1px,1px,1px);padding:0;border:0;height:1px;width:1px;overflow:hidden}a.skiplink:focus{clip:auto;height:auto;width:auto;background-color:#fff;padding:.3em}#map:focus{outline:.15em solid #4a74a8}.rotate-north{top:65px;left:.5em}.ol-touch .rotate-north{top:80px}#map{width:100%;height:100%}
-/*# sourceMappingURL=app.css.map */
\ No newline at end of file
diff --git a/Android/app/src/main/assets/static/css/app.css.map b/Android/app/src/main/assets/static/css/app.css.map
deleted file mode 100644
index 8985b01bda27788e6bf7737e682bf9ebe058e023..0000000000000000000000000000000000000000
--- a/Android/app/src/main/assets/static/css/app.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["app.css"],"names":[],"mappings":"AACA,KACE,8CAAoD,AACpD,mCAAoC,AACpC,kCAAmC,AACnC,kBAAmB,AACnB,aAAe,CAChB,AAED,wCAEE,eAAoB,CACrB,AACD,oBACE,qBAAsB,AACtB,SAAW,CACZ,AACD,oBACE,qBAAsB,AACtB,aAAe,CAChB,AACD,mBACE,aAAe,CAChB,AACD,wBACE,eAAiB,CAClB,AA+CD,WACE,kBAAmB,AACnB,2BAA+B,AAC/B,UAAW,AACX,SAAU,AACV,WAAY,AACZ,UAAW,AACX,eAAiB,CAClB,AACD,iBACE,UAAW,AACX,YAAa,AACb,WAAY,AACZ,sBAAuB,AACvB,YAAe,CAChB,AACD,WACE,2BAA8B,CAC/B,AAMD,cACE,SAAU,AACV,SAAY,CACb,AACD,wBACE,QAAU,CACX,AACD,KACE,WAAY,AACZ,WAAa,CACd","file":"app.css","sourcesContent":["\n#app {\n font-family: 'Avenir', Helvetica, Arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-align: center;\n color: #2c3e50;\n}\n\nh1[data-v-61456717],\nh2[data-v-61456717] {\n font-weight: normal;\n}\nul[data-v-61456717] {\n list-style-type: none;\n padding: 0;\n}\nli[data-v-61456717] {\n display: inline-block;\n margin: 0 10px;\n}\na[data-v-61456717] {\n color: #42b983;\n}\n.hello[data-v-61456717] {\n margin-top: 60px;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\na.skiplink {\n position: absolute;\n clip: rect(1px, 1px, 1px, 1px);\n padding: 0;\n border: 0;\n height: 1px;\n width: 1px;\n overflow: hidden;\n}\na.skiplink:focus {\n clip: auto;\n height: auto;\n width: auto;\n background-color: #fff;\n padding: 0.3em;\n}\n#map:focus {\n outline: #4a74a8 solid 0.15em;\n}\n#map {\n width: 100%;\n height: 100%;\n}\n\n.rotate-north {\n top: 65px;\n left: 0.5em;\n}\n.ol-touch .rotate-north {\n top: 80px;\n}\n#map {\n width: 100%;\n height: 100%;\n}\n"]}
\ No newline at end of file
diff --git a/Android/app/src/main/assets/static/js/app.js b/Android/app/src/main/assets/static/js/app.js
deleted file mode 100644
index 3ff2f23929583a60472980c39f0d8310ed583296..0000000000000000000000000000000000000000
--- a/Android/app/src/main/assets/static/js/app.js
+++ /dev/null
@@ -1,2 +0,0 @@
-webpackJsonp([1],{"1HNa":function(t,e){},"9J4r":function(t,e){},F81W:function(t,e){},NHnr:function(t,e,n){"use strict";function o(t){n("F81W")}function a(t){n("ciVE")}function r(t){n("9J4r")}function l(t){n("1HNa")}function i(t){n("gh8g")}Object.defineProperty(e,"__esModule",{value:!0});var c={name:"app",zWebReady:function(){console.log("app ready.call.......")}},s=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{attrs:{id:"app"}},[n("router-view")],1)},u=[],p={render:s,staticRenderFns:u},m=p,d=n("VU/8"),v=o,f=d(c,m,!1,v,null,null),h=f.exports,_={name:"HelloWorld",data:function(){return{msg:"Your Hybird App"}},mounted:function(){},zWebReady:function(){console.log("HelloWorld ready.call.......")}},g=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"hello"},[n("h1",[t._v(t._s(t.msg))]),t._v(" "),n("h2",[t._v("ECharts")]),t._v(" "),n("ul",[n("li",[n("router-link",{attrs:{to:{name:"ECharts"}}},[t._v("Go to a simple Chart.")])],1)]),t._v(" "),n("h2",[t._v("GIS Map")]),t._v(" "),n("ul",[n("li",[n("router-link",{attrs:{to:{name:"GISMap"}}},[t._v("Simple One.")])],1),t._v(" "),n("li",[n("router-link",{attrs:{to:{name:"ColorManipulation"}}},[t._v("Simple Two")])],1)])])},C=[],w={render:g,staticRenderFns:C},E=w,b=n("VU/8"),y=a,S=b(_,E,!1,y,"data-v-61456717",null),V=S.exports,M={name:"ECharts",zWebReady:function(){console.log("ECharts ready.call.......");var t=echarts.init(document.getElementById("Chart1")),e=echarts.init(document.getElementById("Chart2"));ZWebSDK.message("Chart1","我要加载数据。。。").then(function(e){console.info(e),t.setOption(JSON.parse(e))},function(t){ZWebSDK.tip(t)}),ZWebSDK.message("Chart2","我要加载数据。。。").then(function(t){console.info(t),e.setOption(JSON.parse(t))},function(t){ZWebSDK.tip(t)})}},R=function(){var t=this,e=t.$createElement;t._self._c;return t._m(0,!1,!1)},W=[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("div",{staticStyle:{height:"400px"},attrs:{id:"Chart1"}}),t._v(" "),n("div",{staticStyle:{height:"400px"},attrs:{id:"Chart2"}})])}],N={render:R,staticRenderFns:W},O=N,Z=n("VU/8"),k=r,x=Z(M,O,!1,k,null,null),z=x.exports,H={name:"GISMap",mounted:function(){var t=new ol.Map({layers:[new ol.layer.Tile({source:new ol.source.OSM})],target:"map",controls:ol.control.defaults({attributionOptions:{collapsible:!1}}),view:new ol.View({center:[0,0],zoom:2})});t.addControl(new ol.control.FullScreen),document.getElementById("zoom-out").onclick=function(){var e=t.getView(),n=e.getZoom();e.setZoom(n-1)},document.getElementById("zoom-in").onclick=function(){var e=t.getView(),n=e.getZoom();e.setZoom(n+1)}}},F=function(){var t=this,e=t.$createElement;t._self._c;return t._m(0,!1,!1)},I=[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("a",{staticClass:"skiplink",attrs:{href:"#map"}},[t._v("Go to map")]),t._v(" "),n("div",{staticClass:"map",attrs:{id:"map",tabindex:"0"}}),t._v(" "),n("button",{attrs:{id:"zoom-out"}},[t._v("Zoom out")]),t._v(" "),n("button",{attrs:{id:"zoom-in"}},[t._v("Zoom in")])])}],$={render:F,staticRenderFns:I},G=$,J=n("VU/8"),T=l,U=J(H,G,!1,T,null,null),B=U.exports,D={name:"ColorManipulation",mounted:function(){window.app={};var t=window.app;t.RotateNorthControl=function(t){var e=t||{},n=document.createElement("button");n.innerHTML="N";var o=this,a=function(){o.getMap().getView().setRotation(0)};n.addEventListener("click",a,!1),n.addEventListener("touchstart",a,!1);var r=document.createElement("div");r.className="rotate-north ol-unselectable ol-control",r.appendChild(n),ol.control.Control.call(this,{element:r,target:e.target})},ol.inherits(t.RotateNorthControl,ol.control.Control);new ol.Map({controls:ol.control.defaults({attributionOptions:{collapsible:!1}}).extend([new t.RotateNorthControl]),layers:[new ol.layer.Tile({source:new ol.source.OSM})],target:"map",view:new ol.View({center:[0,0],zoom:3,rotation:1})})}},K=function(){var t=this,e=t.$createElement;t._self._c;return t._m(0,!1,!1)},A=[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("div",{staticClass:"map",attrs:{id:"map"}})])}],L={render:K,staticRenderFns:A},j=L,P=n("VU/8"),Y=i,q=P(D,j,!1,Y,null,null),Q=q.exports,X=new VueRouter({routes:[{path:"/",name:"HelloWorld",component:V},{path:"/echarts",name:"ECharts",component:z},{path:"/gis",name:"GISMap",component:B},{path:"/manipulation",name:"ColorManipulation",component:Q}]}),tt=n("guVC"),et=n.n(tt);Vue.config.productionTip=!1,Vue.use(et.a);new Vue({el:"#app",router:X,template:"",components:{App:h}})},ciVE:function(t,e){},gh8g:function(t,e){}},["NHnr"]);
-//# sourceMappingURL=app.js.map
\ No newline at end of file
diff --git a/Android/app/src/main/assets/static/js/app.js.map b/Android/app/src/main/assets/static/js/app.js.map
deleted file mode 100644
index f57c8becc3a2fcd93e49823ce4fc791b7e6dcebc..0000000000000000000000000000000000000000
--- a/Android/app/src/main/assets/static/js/app.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["webpack:///static/js/app.js","webpack:///./src/App.vue","webpack:///./src/components/HelloWorld.vue","webpack:///./src/components/ECharts.vue","webpack:///./src/components/GISMap.vue","webpack:///./src/components/ColorManipulation.vue","webpack:///src/App.vue","webpack:///./src/App.vue?9512","webpack:///src/components/HelloWorld.vue","webpack:///./src/components/HelloWorld.vue?2e4a","webpack:///src/components/ECharts.vue","webpack:///./src/components/ECharts.vue?2af5","webpack:///src/components/GISMap.vue","webpack:///./src/components/GISMap.vue?f4ae","webpack:///src/components/ColorManipulation.vue","webpack:///./src/components/ColorManipulation.vue?9af7","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["webpackJsonp","1HNa","module","exports","9J4r","F81W","NHnr","__webpack_exports__","__webpack_require__","injectStyle","ssrContext","HelloWorld_injectStyle","ECharts_injectStyle","GISMap_injectStyle","ColorManipulation_injectStyle","Object","defineProperty","value","App","name","zWebReady","console","log","render","_vm","this","_h","$createElement","_c","_self","attrs","id","staticRenderFns","esExports","selectortype_template_index_0_src_App","normalizeComponent","__vue_styles__","Component","src_App","HelloWorld","data","msg","mounted","HelloWorld_render","staticClass","_v","_s","to","HelloWorld_staticRenderFns","HelloWorld_esExports","components_HelloWorld","HelloWorld_normalizeComponent","HelloWorld___vue_styles__","HelloWorld_Component","src_components_HelloWorld","ECharts","myChart1","echarts","init","document","getElementById","myChart2","ZWebSDK","message","then","info","setOption","JSON","parse","tip","ECharts_render","_m","ECharts_staticRenderFns","staticStyle","height","ECharts_esExports","components_ECharts","ECharts_normalizeComponent","ECharts___vue_styles__","ECharts_Component","src_components_ECharts","GISMap","map","ol","Map","layers","layer","Tile","source","OSM","target","controls","control","defaults","attributionOptions","collapsible","view","View","center","zoom","addControl","FullScreen","onclick","getView","getZoom","setZoom","GISMap_render","GISMap_staticRenderFns","href","tabindex","GISMap_esExports","components_GISMap","GISMap_normalizeComponent","GISMap___vue_styles__","GISMap_Component","src_components_GISMap","ColorManipulation","window","app","RotateNorthControl","opt_options","options","button","createElement","innerHTML","this_","handleRotateNorth","getMap","setRotation","addEventListener","element","className","appendChild","Control","call","inherits","extend","rotation","ColorManipulation_render","ColorManipulation_staticRenderFns","ColorManipulation_esExports","components_ColorManipulation","ColorManipulation_normalizeComponent","ColorManipulation___vue_styles__","ColorManipulation_Component","src_components_ColorManipulation","router","VueRouter","routes","path","component","vue_zweb","vue_zweb_default","n","Vue","config","productionTip","use","a","el","template","components","ciVE","gh8g"],"mappings":"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","file":"static/js/app.js","sourcesContent":["webpackJsonp([1],{\n\n/***/ \"1HNa\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"9J4r\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"F81W\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"NHnr\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/App.vue\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ var App = ({\n name: 'app',\n zWebReady: function zWebReady() {\n console.log('app ready.call.......');\n }\n});\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-14039fd4\",\"hasScoped\":false,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ var selectortype_template_index_0_src_App = (esExports);\n// CONCATENATED MODULE: ./src/App.vue\nfunction injectStyle (ssrContext) {\n __webpack_require__(\"F81W\")\n}\nvar normalizeComponent = __webpack_require__(\"VU/8\")\n/* script */\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n App,\n selectortype_template_index_0_src_App,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ var src_App = (Component.exports);\n\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/HelloWorld.vue\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ var HelloWorld = ({\n name: \"HelloWorld\",\n data: function data() {\n return {\n msg: \"Your Hybird App\"\n };\n },\n mounted: function mounted() {},\n zWebReady: function zWebReady() {\n console.log('HelloWorld ready.call.......');\n }\n});\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-61456717\",\"hasScoped\":true,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/HelloWorld.vue\nvar HelloWorld_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"hello\"},[_c('h1',[_vm._v(_vm._s(_vm.msg))]),_vm._v(\" \"),_c('h2',[_vm._v(\"ECharts\")]),_vm._v(\" \"),_c('ul',[_c('li',[_c('router-link',{attrs:{\"to\":{name: 'ECharts'}}},[_vm._v(\"Go to a simple Chart.\")])],1)]),_vm._v(\" \"),_c('h2',[_vm._v(\"GIS Map\")]),_vm._v(\" \"),_c('ul',[_c('li',[_c('router-link',{attrs:{\"to\":{name: 'GISMap'}}},[_vm._v(\"Simple One.\")])],1),_vm._v(\" \"),_c('li',[_c('router-link',{attrs:{\"to\":{name: 'ColorManipulation'}}},[_vm._v(\"Simple Two\")])],1)])])}\nvar HelloWorld_staticRenderFns = []\nvar HelloWorld_esExports = { render: HelloWorld_render, staticRenderFns: HelloWorld_staticRenderFns }\n/* harmony default export */ var components_HelloWorld = (HelloWorld_esExports);\n// CONCATENATED MODULE: ./src/components/HelloWorld.vue\nfunction HelloWorld_injectStyle (ssrContext) {\n __webpack_require__(\"ciVE\")\n}\nvar HelloWorld_normalizeComponent = __webpack_require__(\"VU/8\")\n/* script */\n\n/* template */\n\n/* template functional */\nvar HelloWorld___vue_template_functional__ = false\n/* styles */\nvar HelloWorld___vue_styles__ = HelloWorld_injectStyle\n/* scopeId */\nvar HelloWorld___vue_scopeId__ = \"data-v-61456717\"\n/* moduleIdentifier (server only) */\nvar HelloWorld___vue_module_identifier__ = null\nvar HelloWorld_Component = HelloWorld_normalizeComponent(\n HelloWorld,\n components_HelloWorld,\n HelloWorld___vue_template_functional__,\n HelloWorld___vue_styles__,\n HelloWorld___vue_scopeId__,\n HelloWorld___vue_module_identifier__\n)\n\n/* harmony default export */ var src_components_HelloWorld = (HelloWorld_Component.exports);\n\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/ECharts.vue\n//\n//\n//\n//\n//\n//\n//\n//\n\n// import Echarts from \"echarts\";\n/* harmony default export */ var ECharts = ({\n name: \"ECharts\",\n zWebReady: function zWebReady() {\n // mounted() {\n console.log(\"ECharts ready.call.......\");\n // 基于准备好的dom,初始化echarts实例\n var myChart1 = echarts.init(document.getElementById(\"Chart1\"));\n var myChart2 = echarts.init(document.getElementById(\"Chart2\"));\n\n ZWebSDK.message(\"Chart1\", \"我要加载数据。。。\").then(function (data) {\n console.info(data);\n // 绘制图表\n myChart1.setOption(JSON.parse(data));\n }, function (data) {\n ZWebSDK.tip(data);\n });\n ZWebSDK.message(\"Chart2\", \"我要加载数据。。。\").then(function (data) {\n console.info(data);\n // 绘制图表\n myChart2.setOption(JSON.parse(data));\n }, function (data) {\n ZWebSDK.tip(data);\n });\n }\n});\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-e4a1af06\",\"hasScoped\":false,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/ECharts.vue\nvar ECharts_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0,false,false)}\nvar ECharts_staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticStyle:{\"height\":\"400px\"},attrs:{\"id\":\"Chart1\"}}),_vm._v(\" \"),_c('div',{staticStyle:{\"height\":\"400px\"},attrs:{\"id\":\"Chart2\"}})])}]\nvar ECharts_esExports = { render: ECharts_render, staticRenderFns: ECharts_staticRenderFns }\n/* harmony default export */ var components_ECharts = (ECharts_esExports);\n// CONCATENATED MODULE: ./src/components/ECharts.vue\nfunction ECharts_injectStyle (ssrContext) {\n __webpack_require__(\"9J4r\")\n}\nvar ECharts_normalizeComponent = __webpack_require__(\"VU/8\")\n/* script */\n\n/* template */\n\n/* template functional */\nvar ECharts___vue_template_functional__ = false\n/* styles */\nvar ECharts___vue_styles__ = ECharts_injectStyle\n/* scopeId */\nvar ECharts___vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar ECharts___vue_module_identifier__ = null\nvar ECharts_Component = ECharts_normalizeComponent(\n ECharts,\n components_ECharts,\n ECharts___vue_template_functional__,\n ECharts___vue_styles__,\n ECharts___vue_scopeId__,\n ECharts___vue_module_identifier__\n)\n\n/* harmony default export */ var src_components_ECharts = (ECharts_Component.exports);\n\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/GISMap.vue\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ var GISMap = ({\n name: \"GISMap\",\n mounted: function mounted() {\n var map = new ol.Map({\n layers: [new ol.layer.Tile({\n source: new ol.source.OSM()\n })],\n target: \"map\",\n controls: ol.control.defaults({\n attributionOptions: {\n collapsible: false\n }\n }),\n view: new ol.View({\n center: [0, 0],\n zoom: 2\n })\n });\n\n map.addControl(new ol.control.FullScreen());\n\n document.getElementById(\"zoom-out\").onclick = function () {\n var view = map.getView();\n var zoom = view.getZoom();\n view.setZoom(zoom - 1);\n };\n\n document.getElementById(\"zoom-in\").onclick = function () {\n var view = map.getView();\n var zoom = view.getZoom();\n view.setZoom(zoom + 1);\n };\n }\n});\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-4f721da8\",\"hasScoped\":false,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/GISMap.vue\nvar GISMap_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0,false,false)}\nvar GISMap_staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('a',{staticClass:\"skiplink\",attrs:{\"href\":\"#map\"}},[_vm._v(\"Go to map\")]),_vm._v(\" \"),_c('div',{staticClass:\"map\",attrs:{\"id\":\"map\",\"tabindex\":\"0\"}}),_vm._v(\" \"),_c('button',{attrs:{\"id\":\"zoom-out\"}},[_vm._v(\"Zoom out\")]),_vm._v(\" \"),_c('button',{attrs:{\"id\":\"zoom-in\"}},[_vm._v(\"Zoom in\")])])}]\nvar GISMap_esExports = { render: GISMap_render, staticRenderFns: GISMap_staticRenderFns }\n/* harmony default export */ var components_GISMap = (GISMap_esExports);\n// CONCATENATED MODULE: ./src/components/GISMap.vue\nfunction GISMap_injectStyle (ssrContext) {\n __webpack_require__(\"1HNa\")\n}\nvar GISMap_normalizeComponent = __webpack_require__(\"VU/8\")\n/* script */\n\n/* template */\n\n/* template functional */\nvar GISMap___vue_template_functional__ = false\n/* styles */\nvar GISMap___vue_styles__ = GISMap_injectStyle\n/* scopeId */\nvar GISMap___vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar GISMap___vue_module_identifier__ = null\nvar GISMap_Component = GISMap_normalizeComponent(\n GISMap,\n components_GISMap,\n GISMap___vue_template_functional__,\n GISMap___vue_styles__,\n GISMap___vue_scopeId__,\n GISMap___vue_module_identifier__\n)\n\n/* harmony default export */ var src_components_GISMap = (GISMap_Component.exports);\n\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/ColorManipulation.vue\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ var ColorManipulation = ({\n name: \"ColorManipulation\",\n mounted: function mounted() {\n /**\n * Define a namespace for the application.\n */\n window.app = {};\n var app = window.app;\n\n //\n // Define rotate to north control.\n //\n\n /**\n * @constructor\n * @extends {ol.control.Control}\n * @param {Object=} opt_options Control options.\n */\n app.RotateNorthControl = function (opt_options) {\n var options = opt_options || {};\n\n var button = document.createElement(\"button\");\n button.innerHTML = \"N\";\n\n var this_ = this;\n var handleRotateNorth = function handleRotateNorth() {\n this_.getMap().getView().setRotation(0);\n };\n\n button.addEventListener(\"click\", handleRotateNorth, false);\n button.addEventListener(\"touchstart\", handleRotateNorth, false);\n\n var element = document.createElement(\"div\");\n element.className = \"rotate-north ol-unselectable ol-control\";\n element.appendChild(button);\n\n ol.control.Control.call(this, {\n element: element,\n target: options.target\n });\n };\n ol.inherits(app.RotateNorthControl, ol.control.Control);\n\n //\n // Create map, giving it a rotate to north control.\n //\n\n var map = new ol.Map({\n controls: ol.control.defaults({\n attributionOptions: {\n collapsible: false\n }\n }).extend([new app.RotateNorthControl()]),\n layers: [new ol.layer.Tile({\n source: new ol.source.OSM()\n })],\n target: \"map\",\n view: new ol.View({\n center: [0, 0],\n zoom: 3,\n rotation: 1\n })\n });\n }\n});\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-b7c8e686\",\"hasScoped\":false,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/ColorManipulation.vue\nvar ColorManipulation_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0,false,false)}\nvar ColorManipulation_staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"map\",attrs:{\"id\":\"map\"}})])}]\nvar ColorManipulation_esExports = { render: ColorManipulation_render, staticRenderFns: ColorManipulation_staticRenderFns }\n/* harmony default export */ var components_ColorManipulation = (ColorManipulation_esExports);\n// CONCATENATED MODULE: ./src/components/ColorManipulation.vue\nfunction ColorManipulation_injectStyle (ssrContext) {\n __webpack_require__(\"gh8g\")\n}\nvar ColorManipulation_normalizeComponent = __webpack_require__(\"VU/8\")\n/* script */\n\n/* template */\n\n/* template functional */\nvar ColorManipulation___vue_template_functional__ = false\n/* styles */\nvar ColorManipulation___vue_styles__ = ColorManipulation_injectStyle\n/* scopeId */\nvar ColorManipulation___vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar ColorManipulation___vue_module_identifier__ = null\nvar ColorManipulation_Component = ColorManipulation_normalizeComponent(\n ColorManipulation,\n components_ColorManipulation,\n ColorManipulation___vue_template_functional__,\n ColorManipulation___vue_styles__,\n ColorManipulation___vue_scopeId__,\n ColorManipulation___vue_module_identifier__\n)\n\n/* harmony default export */ var src_components_ColorManipulation = (ColorManipulation_Component.exports);\n\n// CONCATENATED MODULE: ./src/router/index.js\n\n\n\n\n\n/* harmony default export */ var router = (new VueRouter({\n routes: [{\n path: '/',\n name: 'HelloWorld',\n component: src_components_HelloWorld\n }, {\n path: '/echarts',\n name: 'ECharts',\n component: src_components_ECharts\n }, {\n path: '/gis',\n name: 'GISMap',\n component: src_components_GISMap\n }, {\n path: '/manipulation',\n name: 'ColorManipulation',\n component: src_components_ColorManipulation\n }]\n}));\n// EXTERNAL MODULE: ./node_modules/vue-zweb/index.js\nvar vue_zweb = __webpack_require__(\"guVC\");\nvar vue_zweb_default = /*#__PURE__*/__webpack_require__.n(vue_zweb);\n\n// CONCATENATED MODULE: ./src/main.js\n// The Vue build version to load with the `import` command\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\n\n\n\nVue.config.productionTip = false;\n\n// 注入ZWeb 插件\n// import VueZWeb from './plugins/vue-zweb.js'\n// Vue.use(VueZWeb);\n\n\nVue.use(vue_zweb_default.a);\n\n/* eslint-disable no-new */\nvar vm = new Vue({\n el: '#app',\n router: router,\n template: '',\n components: { App: src_App }\n});\n\n/***/ }),\n\n/***/ \"ciVE\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"gh8g\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ })\n\n},[\"NHnr\"]);\n\n\n// WEBPACK FOOTER //\n// static/js/app.js","function injectStyle (ssrContext) {\n require(\"!!../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-14039fd4\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../node_modules/vue-loader/lib/selector?type=styles&index=0!./App.vue\")\n}\nvar normalizeComponent = require(\"!../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nimport __vue_script__ from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\n/* template */\nimport __vue_template__ from \"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-14039fd4\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-61456717\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./HelloWorld.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./HelloWorld.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-61456717\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./HelloWorld.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-61456717\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/HelloWorld.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-e4a1af06\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./ECharts.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./ECharts.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-e4a1af06\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./ECharts.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/ECharts.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-4f721da8\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./GISMap.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./GISMap.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4f721da8\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./GISMap.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/GISMap.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-b7c8e686\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./ColorManipulation.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./ColorManipulation.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-b7c8e686\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":\\\"src\\\",\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./ColorManipulation.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/ColorManipulation.vue\n// module id = null\n// module chunks = ","\n \n \n
\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/App.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-14039fd4\",\"hasScoped\":false,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = null\n// module chunks = ","\n \n
{{ msg }}
\n
ECharts
\n
\n - Go to a simple Chart.
\n
\n
GIS Map
\n
\n - Simple One.
\n - Simple Two
\n
\n
\n\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/HelloWorld.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"hello\"},[_c('h1',[_vm._v(_vm._s(_vm.msg))]),_vm._v(\" \"),_c('h2',[_vm._v(\"ECharts\")]),_vm._v(\" \"),_c('ul',[_c('li',[_c('router-link',{attrs:{\"to\":{name: 'ECharts'}}},[_vm._v(\"Go to a simple Chart.\")])],1)]),_vm._v(\" \"),_c('h2',[_vm._v(\"GIS Map\")]),_vm._v(\" \"),_c('ul',[_c('li',[_c('router-link',{attrs:{\"to\":{name: 'GISMap'}}},[_vm._v(\"Simple One.\")])],1),_vm._v(\" \"),_c('li',[_c('router-link',{attrs:{\"to\":{name: 'ColorManipulation'}}},[_vm._v(\"Simple Two\")])],1)])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-61456717\",\"hasScoped\":true,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/HelloWorld.vue\n// module id = null\n// module chunks = ","\n \n \n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/ECharts.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0,false,false)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticStyle:{\"height\":\"400px\"},attrs:{\"id\":\"Chart1\"}}),_vm._v(\" \"),_c('div',{staticStyle:{\"height\":\"400px\"},attrs:{\"id\":\"Chart2\"}})])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-e4a1af06\",\"hasScoped\":false,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/ECharts.vue\n// module id = null\n// module chunks = ","\n \n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/GISMap.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0,false,false)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('a',{staticClass:\"skiplink\",attrs:{\"href\":\"#map\"}},[_vm._v(\"Go to map\")]),_vm._v(\" \"),_c('div',{staticClass:\"map\",attrs:{\"id\":\"map\",\"tabindex\":\"0\"}}),_vm._v(\" \"),_c('button',{attrs:{\"id\":\"zoom-out\"}},[_vm._v(\"Zoom out\")]),_vm._v(\" \"),_c('button',{attrs:{\"id\":\"zoom-in\"}},[_vm._v(\"Zoom in\")])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-4f721da8\",\"hasScoped\":false,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/GISMap.vue\n// module id = null\n// module chunks = ","\n \n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/ColorManipulation.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0,false,false)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"map\",attrs:{\"id\":\"map\"}})])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-b7c8e686\",\"hasScoped\":false,\"transformToRequire\":{\"video\":\"src\",\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/ColorManipulation.vue\n// module id = null\n// module chunks = ","import HelloWorld from '@/components/HelloWorld'\nimport ECharts from '@/components/ECharts'\nimport GISMap from '@/components/GISMap'\nimport ColorManipulation from '@/components/ColorManipulation'\n\nexport default new VueRouter({\n routes: [\n {\n path: '/',\n name: 'HelloWorld',\n component: HelloWorld\n },\n {\n path: '/echarts',\n name: 'ECharts',\n component: ECharts\n },\n {\n path: '/gis',\n name: 'GISMap',\n component: GISMap\n },\n {\n path: '/manipulation',\n name: 'ColorManipulation',\n component: ColorManipulation\n }\n ]\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/router/index.js","// The Vue build version to load with the `import` command\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\nimport App from './App'\nimport router from './router'\n\nVue.config.productionTip = false\n\n// 注入ZWeb 插件\n// import VueZWeb from './plugins/vue-zweb.js'\n// Vue.use(VueZWeb);\n\nimport VueZWeb from 'vue-zweb';\nVue.use(VueZWeb);\n\n/* eslint-disable no-new */\nlet vm = new Vue({\n el: '#app',\n router,\n template: '',\n components: { App }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js"],"sourceRoot":""}
\ No newline at end of file
diff --git a/Android/app/src/main/assets/static/js/manifest.js.map b/Android/app/src/main/assets/static/js/manifest.js.map
deleted file mode 100644
index b9642fc767b1fde37f8fffcc01eb590d5d5850ae..0000000000000000000000000000000000000000
--- a/Android/app/src/main/assets/static/js/manifest.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["webpack:///static/js/manifest.js","webpack:///webpack/bootstrap 638fd2800278aefee235"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","parentJsonpFunction","window","chunkIds","moreModules","executeModules","chunkId","result","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","shift","s","2","e","onScriptComplete","script","onerror","onload","clearTimeout","timeout","chunk","Error","undefined","installedChunkData","Promise","resolve","promise","reject","head","document","getElementsByTagName","createElement","type","charset","async","nc","setAttribute","src","p","0","1","setTimeout","appendChild","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","oe","err","console","error"],"mappings":"CAAS,SAAUA,GCuCnB,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAI,EAAAJ,EACAK,GAAA,EACAH,WAUA,OANAJ,GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,GAGAI,EAAAE,GAAA,EAGAF,EAAAD,QA1DA,GAAAK,GAAAC,OAAA,YACAA,QAAA,sBAAAC,EAAAC,EAAAC,GAIA,IADA,GAAAX,GAAAY,EAAAC,EAAAT,EAAA,EAAAU,KACQV,EAAAK,EAAAM,OAAoBX,IAC5BQ,EAAAH,EAAAL,GACAY,EAAAJ,IACAE,EAAAG,KAAAD,EAAAJ,GAAA,IAEAI,EAAAJ,GAAA,CAEA,KAAAZ,IAAAU,GACAQ,OAAAC,UAAAC,eAAAd,KAAAI,EAAAV,KACAF,EAAAE,GAAAU,EAAAV,GAIA,KADAO,KAAAE,EAAAC,EAAAC,GACAG,EAAAC,QACAD,EAAAO,SAEA,IAAAV,EACA,IAAAP,EAAA,EAAYA,EAAAO,EAAAI,OAA2BX,IACvCS,EAAAd,IAAAuB,EAAAX,EAAAP,GAGA,OAAAS,GAIA,IAAAZ,MAGAe,GACAO,EAAA,EA6BAxB,GAAAyB,EAAA,SAAAZ,GA+BA,QAAAa,KAEAC,EAAAC,QAAAD,EAAAE,OAAA,KACAC,aAAAC,EACA,IAAAC,GAAAf,EAAAJ,EACA,KAAAmB,IACAA,GACAA,EAAA,MAAAC,OAAA,iBAAApB,EAAA,aAEAI,EAAAJ,OAAAqB,IAvCA,GAAAC,GAAAlB,EAAAJ,EACA,QAAAsB,EACA,UAAAC,SAAA,SAAAC,GAA0CA,KAI1C,IAAAF,EACA,MAAAA,GAAA,EAIA,IAAAG,GAAA,GAAAF,SAAA,SAAAC,EAAAE,GACAJ,EAAAlB,EAAAJ,IAAAwB,EAAAE,IAEAJ,GAAA,GAAAG,CAGA,IAAAE,GAAAC,SAAAC,qBAAA,WACAf,EAAAc,SAAAE,cAAA,SACAhB,GAAAiB,KAAA,kBACAjB,EAAAkB,QAAA,QACAlB,EAAAmB,OAAA,EACAnB,EAAAI,QAAA,KAEA/B,EAAA+C,IACApB,EAAAqB,aAAA,QAAAhD,EAAA+C,IAEApB,EAAAsB,IAAAjD,EAAAkD,EAAA,eAAyDC,EAAA,SAAAC,EAAA,OAAuBvC,OAAA,KAChF,IAAAkB,GAAAsB,WAAA3B,EAAA,KAgBA,OAfAC,GAAAC,QAAAD,EAAAE,OAAAH,EAaAc,EAAAc,YAAA3B,GAEAW,GAIAtC,EAAAuD,EAAAxD,EAGAC,EAAAwD,EAAAtD,EAGAF,EAAAyD,EAAA,SAAAtD,EAAAuD,EAAAC,GACA3D,EAAA4D,EAAAzD,EAAAuD,IACAvC,OAAA0C,eAAA1D,EAAAuD,GACAI,cAAA,EACAC,YAAA,EACAC,IAAAL,KAMA3D,EAAAiE,EAAA,SAAA7D,GACA,GAAAuD,GAAAvD,KAAA8D,WACA,WAA2B,MAAA9D,GAAA,SAC3B,WAAiC,MAAAA,GAEjC,OADAJ,GAAAyD,EAAAE,EAAA,IAAAA,GACAA,GAIA3D,EAAA4D,EAAA,SAAAO,EAAAC,GAAsD,MAAAjD,QAAAC,UAAAC,eAAAd,KAAA4D,EAAAC,IAGtDpE,EAAAkD,EAAA,GAGAlD,EAAAqE,GAAA,SAAAC,GAA8D,KAApBC,SAAAC,MAAAF,GAAoBA","file":"static/js/manifest.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId]) {\n/******/ \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n/******/ \t\t\t}\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n/******/ \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n/******/ \t\twhile(resolves.length) {\n/******/ \t\t\tresolves.shift()();\n/******/ \t\t}\n/******/ \t\tif(executeModules) {\n/******/ \t\t\tfor(i=0; i < executeModules.length; i++) {\n/******/ \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\treturn result;\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// objects to store loaded and loading chunks\n/******/ \tvar installedChunks = {\n/******/ \t\t2: 0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId) {\n/******/ \t\tvar installedChunkData = installedChunks[chunkId];\n/******/ \t\tif(installedChunkData === 0) {\n/******/ \t\t\treturn new Promise(function(resolve) { resolve(); });\n/******/ \t\t}\n/******/\n/******/ \t\t// a Promise means \"currently loading\".\n/******/ \t\tif(installedChunkData) {\n/******/ \t\t\treturn installedChunkData[2];\n/******/ \t\t}\n/******/\n/******/ \t\t// setup Promise in chunk cache\n/******/ \t\tvar promise = new Promise(function(resolve, reject) {\n/******/ \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n/******/ \t\t});\n/******/ \t\tinstalledChunkData[2] = promise;\n/******/\n/******/ \t\t// start chunk loading\n/******/ \t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\tvar script = document.createElement('script');\n/******/ \t\tscript.type = 'text/javascript';\n/******/ \t\tscript.charset = 'utf-8';\n/******/ \t\tscript.async = true;\n/******/ \t\tscript.timeout = 120000;\n/******/\n/******/ \t\tif (__webpack_require__.nc) {\n/******/ \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n/******/ \t\t}\n/******/ \t\tscript.src = __webpack_require__.p + \"static/js/\" + ({\"0\":\"vendor\",\"1\":\"app\"}[chunkId]||chunkId) + \".js\";\n/******/ \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n/******/ \t\tscript.onerror = script.onload = onScriptComplete;\n/******/ \t\tfunction onScriptComplete() {\n/******/ \t\t\t// avoid mem leaks in IE.\n/******/ \t\t\tscript.onerror = script.onload = null;\n/******/ \t\t\tclearTimeout(timeout);\n/******/ \t\t\tvar chunk = installedChunks[chunkId];\n/******/ \t\t\tif(chunk !== 0) {\n/******/ \t\t\t\tif(chunk) {\n/******/ \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n/******/ \t\t\t\t}\n/******/ \t\t\t\tinstalledChunks[chunkId] = undefined;\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t\thead.appendChild(script);\n/******/\n/******/ \t\treturn promise;\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// on error function for async loading\n/******/ \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n/******/ })\n/************************************************************************/\n/******/ ([]);\n\n\n// WEBPACK FOOTER //\n// static/js/manifest.js"," \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData === 0) {\n \t\t\treturn new Promise(function(resolve) { resolve(); });\n \t\t}\n\n \t\t// a Promise means \"currently loading\".\n \t\tif(installedChunkData) {\n \t\t\treturn installedChunkData[2];\n \t\t}\n\n \t\t// setup Promise in chunk cache\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\tinstalledChunkData[2] = promise;\n\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = 'text/javascript';\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tif (__webpack_require__.nc) {\n \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t}\n \t\tscript.src = __webpack_require__.p + \"static/js/\" + ({\"0\":\"vendor\",\"1\":\"app\"}[chunkId]||chunkId) + \".js\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) {\n \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\t}\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n \t\thead.appendChild(script);\n\n \t\treturn promise;\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 638fd2800278aefee235"],"sourceRoot":""}
\ No newline at end of file
diff --git a/Android/app/src/main/assets/static/js/vendor.js b/Android/app/src/main/assets/static/js/vendor.js
deleted file mode 100644
index 62b32b0dc3b31df940585703ec0f0c63fce8a4e9..0000000000000000000000000000000000000000
--- a/Android/app/src/main/assets/static/js/vendor.js
+++ /dev/null
@@ -1,7 +0,0 @@
-webpackJsonp([0],{"FZ+f":function(e,t){function n(e,t){var n=e[1]||"",o=e[3];if(!o)return n;if(t&&"function"==typeof btoa){var i=r(o);return[n].concat(o.sources.map(function(e){return"/*# sourceURL="+o.sourceRoot+e+" */"})).concat([i]).join("\n")}return[n].join("\n")}function r(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var r=n(t,e);return t[2]?"@media "+t[2]+"{"+r+"}":r}).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},o=0;o=0&&n.splice(t,1)}},u=function o(u,c){o.installed||(o.installed=!0,c&&c.name&&(e=c.name),c&&c.timeout&&(t=c.timeout),window.Vue&&window.Vue.isVue&&(r=window.Vue),r[e]=function(){n.forEach(function(e){try{e._zWebReady&&e._zWebReady()}catch(e){console.error(e)}clearTimeout(e._zWebTimer)}),n=[]},u.mixin({beforeCreate:function(){i(this.$options.zWebReady)&&(this._zWebReady=this.$options.zWebReady,s(this))},mounted:function(){var e=this;clearTimeout(this._zWebTimer),this._zWebTimer=setTimeout(function(){e._zWebReady&&e._zWebReady()},t)},beforeDestroy:function(){clearTimeout(this._zWebTimer),a(this)}}))};return o.install=u,o.author="Zyao89",o.version="1.0.0","undefined"!=typeof window&&window.Vue&&window.Vue.use(o),o}()}()}])},"VU/8":function(e,t){e.exports=function(e,t,n,r,o,i){var s,a=e=e||{},u=typeof e.default;"object"!==u&&"function"!==u||(s=e,a=e.default);var c="function"==typeof a?a.options:a;t&&(c.render=t.render,c.staticRenderFns=t.staticRenderFns,c._compiled=!0),n&&(c.functional=!0),o&&(c._scopeId=o);var f;if(i?(f=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(i)},c._ssrRegister=f):r&&(f=r),f){var d=c.functional,p=d?c.render:c.beforeCreate;d?(c._injectStyles=f,c.render=function(e,t){return f.call(t),p(e,t)}):c.beforeCreate=p?[].concat(p,f):[f]}return{esModule:s,exports:a,options:c}}},guVC:function(e,t,n){"use strict";var r=n("Pjbw");e.exports=r},rjj0:function(e,t,n){function r(e){for(var t=0;tn.parts.length&&(r.parts.length=n.parts.length)}else{for(var s=[],o=0;o=0&&t.splice(n,1)}},a=function o(a,s){o.installed||(o.installed=!0,s&&s.name&&(e=s.name),s&&s.timeout&&(n=s.timeout),window.Vue&&window.Vue.isVue&&(i=window.Vue),i[e]=function(){t.forEach(function(e){try{e._zWebReady&&e._zWebReady()}catch(e){console.error(e)}clearTimeout(e._zWebTimer)}),t=[]},a.mixin({beforeCreate:function(){r(this.$options.zWebReady)&&(this._zWebReady=this.$options.zWebReady,u(this))},mounted:function(){var e=this;clearTimeout(this._zWebTimer),this._zWebTimer=setTimeout(function(){e._zWebReady&&e._zWebReady()},n)},beforeDestroy:function(){clearTimeout(this._zWebTimer),c(this)}}))};return o.install=a,o.author=\"Zyao89\",o.version=\"1.0.0\",\"undefined\"!=typeof window&&window.Vue&&window.Vue.use(o),o})}]);\n\n/***/ }),\n\n/***/ \"VU/8\":\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n\n/***/ \"guVC\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar VueZWeb = __webpack_require__(\"Pjbw\");\n\nmodule.exports = VueZWeb;\n\n/***/ }),\n\n/***/ \"rjj0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\nvar listToStyles = __webpack_require__(\"tTVk\")\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of
-
-
diff --git a/Android/build.gradle b/Android/build.gradle
deleted file mode 100755
index b227025e7cfb11fbaa8a71daf9ad2495b6a5bd23..0000000000000000000000000000000000000000
--- a/Android/build.gradle
+++ /dev/null
@@ -1,27 +0,0 @@
-// Top-level build file where you can add configuration options common to all sub-projects/modules.
-
-buildscript {
-
- repositories {
- google()
- jcenter()
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:3.1.0-alpha04'
- classpath 'com.novoda:bintray-release:0.7.0'
-
- // NOTE: Do not place your application dependencies here; they belong
- // in the individual module build.gradle files
- }
-}
-
-allprojects {
- repositories {
- google()
- jcenter()
- }
-}
-
-task clean(type: Delete) {
- delete rootProject.buildDir
-}
diff --git a/Android/settings.gradle b/Android/settings.gradle
deleted file mode 100755
index 244d8df1dadbaf598711f118e86ce8a20c94ef34..0000000000000000000000000000000000000000
--- a/Android/settings.gradle
+++ /dev/null
@@ -1 +0,0 @@
-include ':app', ':z-webview'
diff --git a/Android/z-webview/.classpath b/Android/z-webview/.classpath
deleted file mode 100644
index 8d8d85f14359d91b012eff7597dfb1c92669a2e1..0000000000000000000000000000000000000000
--- a/Android/z-webview/.classpath
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/Android/z-webview/.project b/Android/z-webview/.project
deleted file mode 100644
index a8f9eb4c053c572ca8ae9767ea51c7d962a882d2..0000000000000000000000000000000000000000
--- a/Android/z-webview/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- z-webview
- Project z-webview created by Buildship.
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.buildship.core.gradleprojectbuilder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
- org.eclipse.buildship.core.gradleprojectnature
-
-
diff --git a/Android/z-webview/.settings/org.eclipse.buildship.core.prefs b/Android/z-webview/.settings/org.eclipse.buildship.core.prefs
deleted file mode 100644
index 614207d764c63089f3cee8510ee22b6d18f8e5d0..0000000000000000000000000000000000000000
--- a/Android/z-webview/.settings/org.eclipse.buildship.core.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-#Tue Nov 21 00:46:34 CST 2017
-connection.project.dir=..
diff --git a/Android/z-webview/build.gradle b/Android/z-webview/build.gradle
deleted file mode 100755
index 9fdbd20c4f0c1aa111165c8ff2ec83078ebbc34a..0000000000000000000000000000000000000000
--- a/Android/z-webview/build.gradle
+++ /dev/null
@@ -1,41 +0,0 @@
-apply plugin: 'com.android.library'
-apply plugin: 'com.novoda.bintray-release'
-
-android {
- compileSdkVersion 26
- buildToolsVersion '27.0.1'
-
-
- defaultConfig {
- minSdkVersion 15
- targetSdkVersion 26
- versionCode 1
- versionName "1.0"
- }
-
- lintOptions {
- abortOnError false
- }
-
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- }
- }
-
-}
-
-dependencies {
- implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation 'com.android.support:support-annotations:27.0.1'
-}
-
-publish {
- userOrg = "${USER_ORG}"
- groupId = "${GROUP_ID}"
- artifactId = "${ARTIFACT_ID}"
- publishVersion = "${PUBLISH_VERSION}"
- desc = 'Oh hi, this is a nice view of ZWeb, right?'//描述,不重要
- website = 'https://github.com/zyao89/ZWebView'//网站,不重要;
-}
\ No newline at end of file
diff --git a/Android/z-webview/proguard-rules.pro b/Android/z-webview/proguard-rules.pro
deleted file mode 100755
index f1b424510da51fd82143bc74a0a801ae5a1e2fcd..0000000000000000000000000000000000000000
--- a/Android/z-webview/proguard-rules.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-# public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile
diff --git a/Android/z-webview/src/main/AndroidManifest.xml b/Android/z-webview/src/main/AndroidManifest.xml
deleted file mode 100755
index 4b0bd85d0be1b5c873a27d51240737ff01e54907..0000000000000000000000000000000000000000
--- a/Android/z-webview/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-
diff --git a/Android/z-webview/src/main/java/com/zyao89/view/zweb/constants/ZWebConstant.java b/Android/z-webview/src/main/java/com/zyao89/view/zweb/constants/ZWebConstant.java
deleted file mode 100644
index 82691a139ee823caa94527027920882a65099052..0000000000000000000000000000000000000000
--- a/Android/z-webview/src/main/java/com/zyao89/view/zweb/constants/ZWebConstant.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.zyao89.view.zweb.constants;
-
-import android.support.annotation.RawRes;
-
-import com.zyao89.view.zweb.R;
-
-/**
- * 对外常量
- *
- * @author Zyao89
- * 2017/11/17.
- */
-public interface ZWebConstant
-{
- String MAIN_HTML = "file:///android_asset/index.html";
- String MAIN_HTML_TEST = "file:///android_res/raw/index_test.html";
- @RawRes
- int MAIN_FRAMEWORK = R.raw.zweb;
- @RawRes
- int MAIN_FRAMEWORK_MIN = R.raw.zweb_min;
- @RawRes
- int MAIN_FRAMEWORK_EXTENDS = R.raw.zweb_extends;
-}
diff --git a/Android/z-webview/src/main/java/com/zyao89/view/zweb/javascript/IZRenderListener.java b/Android/z-webview/src/main/java/com/zyao89/view/zweb/javascript/IZRenderListener.java
deleted file mode 100755
index 53dc58c8609d9bef08a5def813088ac0ad6198ff..0000000000000000000000000000000000000000
--- a/Android/z-webview/src/main/java/com/zyao89/view/zweb/javascript/IZRenderListener.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.zyao89.view.zweb.javascript;
-
-import android.webkit.JavascriptInterface;
-
-/**
- * @author Zyao89
- * 2017/11/6.
- */
-public interface IZRenderListener
-{
- @JavascriptInterface
- void onCreated (String frameworkID, String oSize);
-
- @JavascriptInterface
- void onException (String frameworkID, long errCode, String oMsg);
-
- @JavascriptInterface
- void onRequire (String frameworkID, String oData);
-
- @JavascriptInterface
- void onMessage (String frameworkID, String oJson);
-
- @JavascriptInterface
- void onDestroy (String frameworkID);
-
- @JavascriptInterface
- void onLog (String frameworkID, String oData);
-}
diff --git a/Android/z-webview/src/main/java/com/zyao89/view/zweb/views/FixedOnReceivedTitle.java b/Android/z-webview/src/main/java/com/zyao89/view/zweb/views/FixedOnReceivedTitle.java
deleted file mode 100755
index 1a9f71bf6a012db860aa9725d105d6357fe6e356..0000000000000000000000000000000000000000
--- a/Android/z-webview/src/main/java/com/zyao89/view/zweb/views/FixedOnReceivedTitle.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package com.zyao89.view.zweb.views;
-
-import android.webkit.WebBackForwardList;
-import android.webkit.WebView;
-
-import com.zyao89.view.zweb.utils.ZLog;
-
-/**
- * @author Zyao89
- * 2017/11/13.
- */
-/* package */ class FixedOnReceivedTitle
-{
- private WebChromeClientEx mWebChromeClient;
- private boolean mIsOnReceivedTitle;
-
- /* package */ void setWebChromeClient(WebChromeClientEx webChromeClient)
- {
- mWebChromeClient = webChromeClient;
- }
-
- /* package */ void onPageStarted()
- {
- mIsOnReceivedTitle = false;
- }
-
- /* package */ void onPageFinished(WebView view)
- {
- if (!mIsOnReceivedTitle && mWebChromeClient != null)
- {
- WebBackForwardList list = null;
- try
- {
- list = view.copyBackForwardList();
- }
- catch (NullPointerException e)
- {
- ZLog.with(this).w(e.getMessage());
- }
- if (list != null && list.getSize() > 0 && list.getCurrentIndex() >= 0 && list.getItemAtIndex(list.getCurrentIndex()) != null)
- {
- String previousTitle = list.getItemAtIndex(list.getCurrentIndex()).getTitle();
- mWebChromeClient.onReceivedTitle(view, previousTitle);
- }
- }
- }
-
- /* package */ void onReceivedTitle()
- {
- mIsOnReceivedTitle = true;
- }
-}
diff --git a/Android/z-webview/src/main/java/com/zyao89/view/zweb/views/WebChromeClientEx.java b/Android/z-webview/src/main/java/com/zyao89/view/zweb/views/WebChromeClientEx.java
deleted file mode 100755
index be822c0b1257b4825902dc4388c916192b6665e7..0000000000000000000000000000000000000000
--- a/Android/z-webview/src/main/java/com/zyao89/view/zweb/views/WebChromeClientEx.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package com.zyao89.view.zweb.views;
-
-import android.support.annotation.NonNull;
-import android.webkit.JsPromptResult;
-import android.webkit.WebChromeClient;
-import android.webkit.WebView;
-
-import com.zyao89.view.zweb.utils.JsUtils;
-import com.zyao89.view.zweb.utils.ZLog;
-
-/**
- * @author Zyao89
- * 2017/11/13.
- */
-
-/* package */ class WebChromeClientEx extends WebChromeClient
-{
- private FixedOnReceivedTitle mFixedOnReceivedTitle;
-
- /* package */ void setFixedOnReceivedTitle(@NonNull FixedOnReceivedTitle fixedOnReceivedTitle)
- {
- mFixedOnReceivedTitle = fixedOnReceivedTitle;
- fixedOnReceivedTitle.setWebChromeClient(this);
- }
-
- @Override
- public void onProgressChanged(WebView view, int newProgress)
- {
- if (JsUtils.notSupportInterface())
- {
- if (view instanceof WebViewEx)
- {
- ((WebViewEx) view).injectJavascriptInterfaces();
- }
- }
- super.onProgressChanged(view, newProgress);
- }
-
- @Override
- public void onReceivedTitle(WebView view, String title)
- {
- mFixedOnReceivedTitle.onReceivedTitle();
- }
-
- @Override
- public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result)
- {
- ZLog.with(this).z("onJsPrompt:" + url + " message:" + message + " d:" + defaultValue + " ");
- if (JsUtils.notSupportInterface())
- {
- if (view instanceof WebViewEx)
- {
- if (((WebViewEx) view).handleJsInterface(url, message, defaultValue, result))
- {
- return true;
- }
- }
- }
- return super.onJsPrompt(view, url, message, defaultValue, result);
- }
-}
diff --git a/Android/z-webview/src/main/java/com/zyao89/view/zweb/views/WebViewClientEx.java b/Android/z-webview/src/main/java/com/zyao89/view/zweb/views/WebViewClientEx.java
deleted file mode 100755
index e442af54893c28175549f41b7f0e2387bb1e6420..0000000000000000000000000000000000000000
--- a/Android/z-webview/src/main/java/com/zyao89/view/zweb/views/WebViewClientEx.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.zyao89.view.zweb.views;
-
-import android.graphics.Bitmap;
-import android.support.annotation.NonNull;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
-
-import com.zyao89.view.zweb.utils.JsUtils;
-
-/**
- * @author Zyao89
- * 2017/11/13.
- */
-
-/* package */ class WebViewClientEx extends WebViewClient
-{
- private FixedOnReceivedTitle mFixedOnReceivedTitle;
-
- /* package */ void setFixedOnReceivedTitle(@NonNull FixedOnReceivedTitle fixedOnReceivedTitle)
- {
- mFixedOnReceivedTitle = fixedOnReceivedTitle;
- }
-
- @Override
- public void onPageStarted(WebView view, String url, Bitmap favicon)
- {
- mFixedOnReceivedTitle.onPageStarted();
- if (JsUtils.notSupportInterface())
- {
- if (view instanceof WebViewEx)
- {
- ((WebViewEx) view).injectJavascriptInterfaces();
- ((WebViewEx) view).fixedAccessibilityInjectorExceptionForOnPageFinished(url);
- }
- }
- }
-
- @Override
- public void onPageFinished(WebView view, String url)
- {
- mFixedOnReceivedTitle.onPageFinished(view);
- }
-}
diff --git a/Android/z-webview/src/main/java/com/zyao89/view/zweb/views/WebViewEx.java b/Android/z-webview/src/main/java/com/zyao89/view/zweb/views/WebViewEx.java
deleted file mode 100755
index cc5d522cf9562700f69014156da849d830e4323a..0000000000000000000000000000000000000000
--- a/Android/z-webview/src/main/java/com/zyao89/view/zweb/views/WebViewEx.java
+++ /dev/null
@@ -1,280 +0,0 @@
-package com.zyao89.view.zweb.views;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.os.Build;
-import android.support.annotation.Nullable;
-import android.text.TextUtils;
-import android.util.AttributeSet;
-import android.view.accessibility.AccessibilityManager;
-import android.webkit.JsPromptResult;
-import android.webkit.WebChromeClient;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
-
-import com.zyao89.view.zweb.constants.JavaScriptMethodName;
-import com.zyao89.view.zweb.exceptions.ZWebException;
-import com.zyao89.view.zweb.utils.JsCallJava;
-import com.zyao89.view.zweb.utils.JsUtils;
-import com.zyao89.view.zweb.utils.ZLog;
-
-import org.json.JSONObject;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.net.URI;
-import java.net.URLEncoder;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author Zyao89
- * 2017/11/13.
- */
-public class WebViewEx extends WebView
-{
- private final HashMap mJsInterfaceMap = new HashMap();
- private FixedOnReceivedTitle mFixedOnReceivedTitle;
- private Boolean mIsAccessibilityEnabledOriginal;
-
- public WebViewEx(Context context)
- {
- super(context);
- init(context);
- }
-
- public WebViewEx(Context context, AttributeSet attrs)
- {
- super(context, attrs);
- init(context);
- }
-
- public WebViewEx(Context context, AttributeSet attrs, int defStyleAttr)
- {
- super(context, attrs, defStyleAttr);
- init(context);
- }
-
- private void init(Context context)
- {
- // 删除掉Android默认注册的JS接口
- removeSearchBoxImpl();
- mFixedOnReceivedTitle = new FixedOnReceivedTitle();
- }
-
- /**
- * 删除掉Android默认注册的JS接口
- */
- private void removeSearchBoxImpl()
- {
- super.removeJavascriptInterface(JavaScriptMethodName.SEARCH_BOX_JAVA_BRIDGE);
- }
-
- public final void setWebChromeClient(WebChromeClientEx client)
- {
- client.setFixedOnReceivedTitle(mFixedOnReceivedTitle);
- super.setWebChromeClient(client);
- }
-
- public final void setWebViewClient(WebViewClientEx client)
- {
- client.setFixedOnReceivedTitle(mFixedOnReceivedTitle);
- super.setWebViewClient(client);
- }
-
- public boolean handleJsInterface(String url, String message, String defaultValue, JsPromptResult result)
- {
- if (mJsInterfaceMap != null && JsCallJava.isSafeWebViewCallMsg(message))
- {
- JSONObject jsonObject = JsCallJava.getMsgJSONObject(message);
- String interfacedName = JsCallJava.getInterfacedName(jsonObject);
- if (interfacedName != null)
- {
- JsCallJava jsCallJava = mJsInterfaceMap.get(interfacedName);
- if (jsCallJava != null)
- {
- result.confirm(jsCallJava.call(this, jsonObject));
- }
- }
- return true;
- }
- return false;
- }
-
- public void injectJavascriptInterfaces()
- {
- if (mJsInterfaceMap != null)
- {
- injectJavaScript();
- }
- }
-
- @Override
- public void destroy()
- {
- setVisibility(GONE);
- if (mJsInterfaceMap != null)
- {
- mJsInterfaceMap.clear();
- }
- removeAllViewsInLayout();
- releaseConfigCallback();
-
- resetAccessibilityEnabled();
- super.destroy();
- }
-
- @Override
- @Deprecated
- public final void setWebViewClient(WebViewClient client)
- {
- throw new ZWebException("WebViewClient is Deprecated...");
- }
-
- @Override
- @Deprecated
- public final void setWebChromeClient(WebChromeClient client)
- {
- throw new ZWebException("WebChromeClient is Deprecated...");
- }
-
- @Override
- @SuppressLint({"JavascriptInterface", "AddJavascriptInterface"})
- public void addJavascriptInterface(Object interfaceObj, String interfaceName)
- {
- if (TextUtils.isEmpty(interfaceName))
- {
- return;
- }
-
- // 如果在4.2以上,直接调用基类的方法来注册
- if (!JsUtils.notSupportInterface())
- {
- super.addJavascriptInterface(interfaceObj, interfaceName);
- ZLog.with(this).z("addJavascriptInterface support...");
- return;
- }
-
- mJsInterfaceMap.put(interfaceName, new JsCallJava(interfaceObj, interfaceName));
- injectJavaScript(interfaceName);
- ZLog.with(this).z("injectJavaScript, addJavascriptInterface.interfaceObj = " + interfaceObj + ", interfaceName = " + interfaceName);
- }
-
- protected void fixedAccessibilityInjectorExceptionForOnPageFinished(String url)
- {
- if (Build.VERSION.SDK_INT == Build.VERSION_CODES.JELLY_BEAN && getSettings().getJavaScriptEnabled() && mIsAccessibilityEnabledOriginal == null && isAccessibilityEnabled())
- {
- try
- {
- try
- {
- URLEncoder.encode(String.valueOf(new URI(url)), "utf-8");
- // URLEncodedUtils.parse(new URI(url), null); // AccessibilityInjector.getAxsUrlParameterValue
- }
- catch (IllegalArgumentException e)
- {
- if (JavaScriptMethodName.BAD_PARAMETER.equals(e.getMessage()))
- {
- mIsAccessibilityEnabledOriginal = true;
- setAccessibilityEnabled(false);
- ZLog.with(this).e("fixedAccessibilityInjectorExceptionForOnPageFinished.url = " + url + e.getMessage());
- }
- }
- }
- catch (Throwable e)
- {
- ZLog.with(this).e("fixedAccessibilityInjectorExceptionForOnPageFinished: " + e.getMessage());
- }
- }
- }
-
- private void injectJavaScript(@Nullable String interfaceName)
- {
- JsCallJava jsCallJava = mJsInterfaceMap.get(interfaceName);
- if (jsCallJava != null)
- {
- this.loadUrl(JsUtils.buildNotRepeatInjectJS(interfaceName, jsCallJava.getPreloadInterfaceJS()));
- }
- }
-
- private void injectJavaScript()
- {
- for (Map.Entry entry : mJsInterfaceMap.entrySet())
- {
- this.loadUrl(JsUtils.buildNotRepeatInjectJS(entry.getKey(), entry.getValue().getPreloadInterfaceJS()));
- }
- }
-
- private boolean isAccessibilityEnabled()
- {
- AccessibilityManager am = (AccessibilityManager) getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
- return am != null && am.isEnabled();
- }
-
- private void setAccessibilityEnabled(boolean enabled)
- {
- AccessibilityManager am = (AccessibilityManager) getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
- if (am == null)
- {
- ZLog.with(this).d("AccessibilityManager is null... ");
- return;
- }
- try
- {
- @SuppressLint("PrivateApi") Method setAccessibilityState = am.getClass().getDeclaredMethod("setAccessibilityState", boolean.class);
- setAccessibilityState.setAccessible(true);
- setAccessibilityState.invoke(am, enabled);
- setAccessibilityState.setAccessible(false);
- }
- catch (Exception e)
- {
- ZLog.with(this).e("setAccessibilityEnabled: " + e.getMessage());
- }
- }
-
- private void resetAccessibilityEnabled()
- {
- if (mIsAccessibilityEnabledOriginal != null)
- {
- setAccessibilityEnabled(mIsAccessibilityEnabledOriginal);
- }
- }
-
- /**
- * 解决WebView内存泄漏问题
- */
- private void releaseConfigCallback()
- {
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN)
- { // JELLY_BEAN
- try
- {
- Field field = WebView.class.getDeclaredField("mWebViewCore");
- field = field.getType().getDeclaredField("mBrowserFrame");
- field = field.getType().getDeclaredField("sConfigCallback");
- field.setAccessible(true);
- field.set(null, null);
- }
- catch (Exception e)
- {
- ZLog.with(this).z(e.getMessage());
- }
- }
- else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT)
- { // KITKAT
- try
- {
- @SuppressLint("PrivateApi") Field sConfigCallback = Class.forName("android.webkit.BrowserFrame").getDeclaredField("sConfigCallback");
- if (sConfigCallback != null)
- {
- sConfigCallback.setAccessible(true);
- sConfigCallback.set(null, null);
- }
- }
- catch (Exception e)
- {
- ZLog.with(this).z(e.getMessage());
- }
- }
- }
-}
diff --git a/Android/z-webview/src/main/java/com/zyao89/view/zweb/views/ZWebView.java b/Android/z-webview/src/main/java/com/zyao89/view/zweb/views/ZWebView.java
deleted file mode 100755
index 7334f9f11e4e9b6571038d27c1e35488786b7b0b..0000000000000000000000000000000000000000
--- a/Android/z-webview/src/main/java/com/zyao89/view/zweb/views/ZWebView.java
+++ /dev/null
@@ -1,356 +0,0 @@
-package com.zyao89.view.zweb.views;
-
-import android.annotation.SuppressLint;
-import android.annotation.TargetApi;
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.Color;
-import android.net.http.SslError;
-import android.os.Build;
-import android.support.annotation.Nullable;
-import android.view.Gravity;
-import android.view.View;
-import android.webkit.SslErrorHandler;
-import android.webkit.WebResourceError;
-import android.webkit.WebResourceRequest;
-import android.webkit.WebResourceResponse;
-import android.webkit.WebSettings;
-import android.webkit.WebView;
-import android.widget.FrameLayout;
-
-import com.zyao89.view.zweb.ZWebConfig;
-import com.zyao89.view.zweb.utils.ZLog;
-
-/**
- * @author Zyao89
- * 2017/11/13.
- */
-public class ZWebView implements IZWebView
-{
- private final Context mContext;
-
- private ZWebConfig mZWebConfig;
- private WebViewEx mWebView;
-
- private OnErrorListener mOnErrorListener;
- private OnPageListener mOnPageListener;
-
- public ZWebView(Context context)
- {
- mContext = context;
- }
-
- public void setConfig(ZWebConfig config)
- {
- mZWebConfig = config;
- }
-
- @Override
- public View getView()
- {
- if (mWebView == null)
- {
- //mContext.getApplicationContext();
- mWebView = new WebViewEx(mContext);
- FrameLayout.LayoutParams wvLayoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
- wvLayoutParams.gravity = Gravity.CENTER;
- mWebView.setLayoutParams(wvLayoutParams);
- mWebView.setBackgroundColor(Color.TRANSPARENT);
- initWebView(mWebView);
- }
- return mWebView;
- }
-
- @Override
- public void onPause()
- {
- if (getWebView() == null)
- {
- return;
- }
- getWebView().pauseTimers();
- getWebView().onPause();
- }
-
- @Override
- public void onResume()
- {
- if (getWebView() == null)
- {
- return;
- }
- getWebView().onResume();
- getWebView().resumeTimers();
- }
-
- @Override
- public void destroy()
- {
- if (getWebView() != null)
- {
- getWebView().getSettings().setJavaScriptEnabled(false);
- getWebView().clearHistory();
- getWebView().clearView();
- getWebView().removeAllViews();
- getWebView().freeMemory();
- getWebView().destroy();
- mWebView = null;
- }
- }
-
- @Override
- public void loadUrl(String url)
- {
- if (getWebView() == null)
- {
- return;
- }
- getWebView().loadUrl(url);
- }
-
- @Override
- @TargetApi(Build.VERSION_CODES.KITKAT)
- public void evaluateJavascript(String script)
- {
- if (getWebView() == null)
- {
- return;
- }
- getWebView().evaluateJavascript(script, null);
- }
-
- @Override
- public void reload()
- {
- if (getWebView() == null)
- {
- return;
- }
- getWebView().reload();
- }
-
- @Override
- public boolean canGoBack()
- {
- if (getWebView() == null)
- {
- return false;
- }
- return getWebView().canGoBack();
- }
-
- @Override
- public void goBack()
- {
- if (getWebView() == null)
- {
- return;
- }
- getWebView().goBack();
- }
-
- @Override
- public void goForward()
- {
- if (getWebView() == null)
- {
- return;
- }
- getWebView().goForward();
- }
-
- @Override
- @SuppressLint({"JavascriptInterface", "AddJavascriptInterface"})
- public void addJavascriptInterface(Object object, String name)
- {
- if (getWebView() == null)
- {
- return;
- }
- getWebView().addJavascriptInterface(object, name);
- }
-
- @Override
- public void setOnErrorListener(OnErrorListener listener)
- {
- mOnErrorListener = listener;
- }
-
- @Override
- public void setOnPageListener(OnPageListener listener)
- {
- mOnPageListener = listener;
- }
-
- private void showWebView(boolean shown)
- {
- mWebView.setVisibility(shown ? View.VISIBLE : View.INVISIBLE);
- }
-
- @Nullable
- private WebViewEx getWebView()
- {
- //TODO: remove this, duplicate with getView semantically.
- return mWebView;
- }
-
- @SuppressLint("SetJavaScriptEnabled")
- private void initWebView(WebViewEx wv)
- {
- WebSettings settings = wv.getSettings();
- settings.setJavaScriptEnabled(true);
- settings.setAppCacheEnabled(true);
- settings.setUseWideViewPort(true);
- settings.setDomStorageEnabled(true);
- settings.setSupportZoom(false);
- settings.setBuiltInZoomControls(false);
- settings.setDisplayZoomControls(false);
- settings.setJavaScriptCanOpenWindowsAutomatically(true);
- settings.setDefaultTextEncodingName("utf-8");//设置编码格式
-
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
- {//适配5.0不允许http和https混合使用情况
- settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
- wv.setLayerType(View.LAYER_TYPE_HARDWARE, null);
- }
- else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
- {
- wv.setLayerType(View.LAYER_TYPE_HARDWARE, null);
- }
- else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT)
- {
- wv.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
- }
-
- settings.setTextZoom(100);
- settings.setDatabaseEnabled(true);
- settings.setAppCacheEnabled(true);
- settings.setLoadsImagesAutomatically(true);
- settings.setSupportMultipleWindows(false);
- //是否阻塞加载网络图片 协议http or https
- settings.setBlockNetworkImage(false);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
- {
- settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
- }
- else
- {
- settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);
- }
- settings.setLoadWithOverviewMode(true);
- settings.setNeedInitialFocus(true);
- settings.setGeolocationEnabled(true);
-
- //允许加载本地文件html file协议
- settings.setAllowFileAccess(mZWebConfig == null || mZWebConfig.isFileAccess());
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
- {
- //通过 file url 加载的 Javascript 读取其他的本地文件 .建议关闭
- settings.setAllowFileAccessFromFileURLs(mZWebConfig == null || mZWebConfig.isFileAccess());
- //允许通过 file url 加载的 Javascript 可以访问其他的源,包括其他的文件和 http,https 等其他的源
- settings.setAllowUniversalAccessFromFileURLs(mZWebConfig == null || mZWebConfig.isFileAccess());
- }
-
- wv.setWebViewClient(new WebViewClientEx()
- {
-
- @Override
- public boolean shouldOverrideUrlLoading(WebView view, String url)
- {
- ZLog.with(this).z("onPageOverride " + url);
- view.loadUrl(url);
- return true;
- }
-
- @Override
- public WebResourceResponse shouldInterceptRequest(WebView view, String url)
- {
- if (mOnPageListener != null)
- {
- return mOnPageListener.shouldInterceptRequest(url);
- }
- return null;
- }
-
- @Override
- public void onLoadResource(WebView view, String url)
- {
- ZLog.with(this).z("onLoadResource " + url);
- }
-
- @Override
- public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error)
- {
- super.onReceivedError(view, request, error);
- if (mOnErrorListener != null)
- {
- mOnErrorListener.onError("error", "page error");
- }
- }
-
- @Override
- public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse)
- {
- if (mOnErrorListener != null)
- {
- mOnErrorListener.onError("error", "http error");
- }
- }
-
- @Override
- public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error)
- {
- handler.proceed(); // 接受网站证书
- }
-
- @Override
- public void onPageStarted(WebView view, String url, Bitmap favicon)
- {
- super.onPageStarted(view, url, favicon);
- ZLog.with(this).z("onPageStarted " + url);
- if (mOnPageListener != null)
- {
- mOnPageListener.onPageStart(url);
- }
- }
-
- @Override
- public void onPageFinished(WebView view, String url)
- {
- super.onPageFinished(view, url);
- ZLog.with(this).z("onPageFinished " + url);
- if (mOnPageListener != null)
- {
- mOnPageListener.onPageFinish(url, view.canGoBack(), view.canGoForward());
- }
- }
-
- });
-
- wv.setWebChromeClient(new WebChromeClientEx()
- {
- @Override
- public void onProgressChanged(WebView view, int newProgress)
- {
- super.onProgressChanged(view, newProgress);
- showWebView(newProgress == 100);
- if (mOnPageListener != null)
- {
- mOnPageListener.onProgressChanged(newProgress);
- }
- ZLog.with(this).z("onPageProgressChanged " + newProgress);
- }
-
- @Override
- public void onReceivedTitle(WebView view, String title)
- {
- super.onReceivedTitle(view, title);
- if (mOnPageListener != null)
- {
- mOnPageListener.onReceivedTitle(view.getTitle());
- }
- }
-
- });
- }
-}
diff --git a/Android/z-webview/src/main/res/raw/zweb_min.js b/Android/z-webview/src/main/res/raw/zweb_min.js
deleted file mode 100644
index e34b7dc3c9f41c699a3c4631b19ee57db3ac2ded..0000000000000000000000000000000000000000
--- a/Android/z-webview/src/main/res/raw/zweb_min.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- ZWeb.js v0.0.1
- (c) 2017 Zyao89
- Released under the MIT License.
-*/
-(function(c,e){if("undefined"===typeof c)throw"not find window...";"undefined"===typeof c.__ZWeb__?(e=new (e(c,"ZWeb")),c.__ZWeb__=e.__ROOT__,"object"===typeof exports&&"undefined"!==typeof module?module.exports=e:"function"===typeof define&&define.amd?define("ZWebSDK",e):c.ZWebSDK=e):console.error("ZWeb already loaded...")})(window,function(c,e){function l(){var a=0,b=0;c.innerWidth?a=c.innerWidth:document.body&&document.body.clientWidth&&(a=document.body.clientWidth);c.innerHeight?b=c.innerHeight:
-document.body&&document.body.clientHeight&&(b=document.body.clientHeight);document.documentElement&&document.documentElement.clientHeight&&document.documentElement.clientWidth&&(b=document.documentElement.clientHeight,a=document.documentElement.clientWidth);return{Width:a,Height:b}}var g={UUID:void 0,Promise:void 0};(function(a){function b(){this.id=this.createUUID()}b.prototype.valueOf=function(){return this.id};b.prototype.toString=function(){return this.id};b.prototype.createUUID=function(){var a=
-new Date(1582,10,15,0,0,0,0),c=(new Date).getTime()-a.getTime(),a=b.getIntegerBits(c,0,31),m=b.getIntegerBits(c,32,47),c=b.getIntegerBits(c,48,59)+"1",n=b.getIntegerBits(b.rand(4095),0,7),e=b.getIntegerBits(b.rand(4095),0,7),f=b.getIntegerBits(b.rand(8191),0,7)+b.getIntegerBits(b.rand(8191),8,15)+b.getIntegerBits(b.rand(8191),0,7)+b.getIntegerBits(b.rand(8191),8,15)+b.getIntegerBits(b.rand(8191),0,15);return a+"-"+m+"-"+c+"-"+n+e+"-"+f};b.getIntegerBits=function(a,c,e){a=b.returnBase(a,16);var d=
-[],h="",f;for(f=0;f=b?this.returnBase(d,b)+c[a]:c[d]+c[a]}return b};b.rand=function(a){return Math.floor(Math.random()*a)};a.UUID=b})(g);(function(a){var b=function(){this.callbacks=[]};b.prototype={construct:b,resolve:function(a){this.complete("resolve",
-a)},reject:function(a){this.complete("reject",a)},complete:function(a,b){for(;this.callbacks[0];){var c=this.callbacks.shift()[a];c&&c(b)}},then:function(a,b){this.callbacks.push({resolve:a,reject:b});return this}};a.Promise=b})(g);e=function(){this.mapRequireQueue={};this.mapMessageQueue={};this.mapDatabaseQueue={};this.__onFuncCallBackMap__={};this.author="Zyao89";this.version="1.0.0";this.__ROOT__=new k(this)};var p="_init_ extends createUUID saveData loadData databaseCallback showLoading hideLoading tip require requireCallback message messageCallback destroy callInterOS callOS exceptionOS print on dispatchCallback".split(" ");
-e.prototype={_init_:function(a,b){this.FrameworkUUID=a;this.OS=b.OS;this.Version=b.Version;this.InternalName=b.InternalName;this.ExposedName=b.ExposedName;this.print("Info",JSON.stringify(b))},extends:function(a,b){if(0<=p.indexOf(a))throw"Not allowed to use name...";this.__ROOT__[a]=b},createUUID:function(){return(new g.UUID).id},saveData:function(a,b){a={Sequence:this.createUUID(),Data:{Key:a,Value:b}};b=new g.Promise;this.mapDatabaseQueue[a.Sequence]=b;this.callInterOS("saveData",a);return b},
-loadData:function(a){a={Sequence:this.createUUID(),Data:a};var b=new g.Promise;this.mapDatabaseQueue[a.Sequence]=b;this.callInterOS("loadData",a);return b},databaseCallback:function(a){var b=a.Sequence,c=this.mapDatabaseQueue[b];"undefined"!==typeof c&&(delete this.mapDatabaseQueue[b],"success"===a.Result?c.resolve(a.Data):c.reject(a.Data))},showLoading:function(){this.callInterOS("showLoading")},hideLoading:function(){this.callInterOS("hideLoading")},tip:function(a){this.callInterOS("tip",a)},require:function(a,
-b,c,e){a={Sequence:this.createUUID(),Url:a,Method:b,Data:c,Type:e||"json"};b=new g.Promise;this.mapRequireQueue[a.Sequence]=b;this.callInterOS("onRequire",a);return b},requireCallback:function(a){var b=a.Sequence,c=this.mapRequireQueue[b];"undefined"!==typeof c&&(delete this.mapRequireQueue[b],"success"===a.Result?c.resolve(a.Data):c.reject(a.Data))},message:function(a,b){a={Sequence:this.createUUID(),Cmd:a,Data:b};b=new g.Promise;this.mapMessageQueue[a.Sequence]=b;this.callInterOS("onMessage",a);
-return b},messageCallback:function(a){var b=a.Sequence,c=this.mapMessageQueue[b];"undefined"!==typeof c&&(delete this.mapMessageQueue[b],"success"===a.Result?c.resolve(a.Data):c.reject(a.Data))},destroy:function(){this.callInterOS("onDestroy")},callInterOS:function(a,b){this.callOS(a,b,this.InternalName)},callOS:function(a,b,d){"undefined"===typeof d&&(d=this.ExposedName);switch(this.OS){case "ANDROID":if(c[d]&&c[d][a])if("undefined"===typeof b)c[d][a](this.FrameworkUUID);else if("object"===typeof b)c[d][a](this.FrameworkUUID,
-JSON.stringify(b));else c[d][a](this.FrameworkUUID,b);else this.print(a+" : "+this.FrameworkUUID+"\uff1a Android \u63a5\u53e3\u8c03\u7528\u5f02\u5e38...");break;case "IOS":c.webkit&&c.webkit.messageHandlers&&c.webkit.messageHandlers[d]?(a={Method:a,FrameworkID:this.FrameworkUUID,Data:JSON.stringify(b)},"undefined"===typeof b&&delete a.Data,c.webkit.messageHandlers[d].postMessage(a)):this.print(a+" : "+this.FrameworkUUID+"\uff1a IOS \u63a5\u53e3\u8c03\u7528\u5f02\u5e38...");break;case "WEB":this.print(a+
-" : "+this.FrameworkUUID+"\uff1a Web \u63a5\u53e3\u8c03\u7528...");break;default:this.print("error","You must be initFramework(); , \u56de\u8c03\u5931\u8d25\u3002")}},exceptionOS:function(a,b){switch(this.OS){case "ANDROID":if(c[this.InternalName]&&c[this.InternalName].onException)if("undefined"===typeof b)c[this.InternalName].onException(this.FrameworkUUID,a,"");else if("object"===typeof oData)c[this.InternalName].onException(this.FrameworkUUID,a,JSON.stringify(b));else c[this.InternalName].onException(this.FrameworkUUID,
-a,b);else this.print("onException : "+this.FrameworkUUID+"\uff1a Android \u63a5\u53e3\u8c03\u7528\u5f02\u5e38...");break;case "IOS":c.webkit&&c.webkit.messageHandlers&&c.webkit.messageHandlers[this.InternalName]?(a={Method:"onException",FrameworkID:this.FrameworkUUID,ErrorCode:a,Data:JSON.stringify(b)},c.webkit.messageHandlers[this.InternalName].postMessage(a)):this.print("onException : "+this.FrameworkUUID+"\uff1a IOS \u63a5\u53e3\u8c03\u7528\u5f02\u5e38...");break;case "WEB":this.print("onException : "+
-this.FrameworkUUID+"\uff1a Web \u63a5\u53e3\u8c03\u7528...");break;default:this.print("error","You must be initFramework(); , \u56de\u8c03\u5931\u8d25\u3002")}},print:function(){var a="Debug",b=arguments[0];2===arguments.length&&(a=arguments[0],b=arguments[1]);a={Type:a,Msg:b};console.info(a);switch(this.OS){case "ANDROID":if(c[this.InternalName]&&c[this.InternalName].onLog)c[this.InternalName].onLog(this.FrameworkUUID,JSON.stringify(a));else console.error("onLog : "+this.FrameworkUUID+"\uff1a Android \u63a5\u53e3\u8c03\u7528\u5f02\u5e38...");
-break;case "IOS":c.webkit&&c.webkit.messageHandlers&&c.webkit.messageHandlers[this.InternalName]?(b={Method:"onLog",FrameworkID:this.FrameworkUUID,Data:JSON.stringify(a)},c.webkit.messageHandlers[this.InternalName].postMessage(b)):console.error("onException : "+this.FrameworkUUID+"\uff1a IOS \u63a5\u53e3\u8c03\u7528\u5f02\u5e38...");break;case "WEB":console.error("onLog : "+this.FrameworkUUID+"\uff1a Web \u63a5\u53e3\u8c03\u7528...");break;default:console.error("Call print error...")}},on:function(a,
-b){this.__onFuncCallBackMap__[a]=b},dispatchCallback:function(a,b){(a=this.__onFuncCallBackMap__[a])&&"function"===typeof a&&a(b)}};var k=function(a){this.FrameworkUUID=0;this.OS="WEB";this.author="Zyao89";this.version="1.0.0";this.__ZWebSDK__=a;this._isInitFinish=!1};k.prototype={initFramework:function(a,b){this._isInitFinish||(this._isInitFinish=!0,this.FrameworkUUID=a,this.OS=b.OS,this.Version=b.Version,this.InternalName=b.InternalName,this.ExposedName=b.ExposedName,this.__ZWebSDK__._init_(a,b),
-this.__ZWebSDK__.callInterOS("onCreated",l()));a=void 0;c.Vue&&(a=c.Vue.__VueZWeb_Dispatch_Ready__);a&&"function"===typeof a||(a=c.__VueZWeb_Dispatch_Ready__);a&&"function"===typeof a&&a()},requireCallback:function(a,b){this.__ZWebSDK__.requireCallback(b)},messageCallback:function(a,b){this.__ZWebSDK__.messageCallback(b)},databaseCallback:function(a,b){this.__ZWebSDK__.databaseCallback(b)},callReceiver:function(a,b,c){this.__ZWebSDK__.dispatchCallback(b,c)},goBack:function(a){this.__ZWebSDK__.print("goBack \u88ab\u8c03\u7528\u4e86...");
-c.history.go(-1)},goForward:function(a){this.__ZWebSDK__.print("goForward \u88ab\u8c03\u7528\u4e86...");c.history.go(1)},refresh:function(a){this.__ZWebSDK__.print("refresh \u88ab\u8c03\u7528\u4e86...");c.location.reload()}};return e});
\ No newline at end of file
diff --git a/Android/z-webview/src/main/res/values/strings.xml b/Android/z-webview/src/main/res/values/strings.xml
deleted file mode 100755
index 55f0fa9e356e8493290e1c22bc8b6d17d57d194c..0000000000000000000000000000000000000000
--- a/Android/z-webview/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
- ZWebView
-
diff --git a/HybirdApp/config/index.js b/HybirdApp/config/index.js
index a57b3b36a03dcc402a9b4c7b1614ffecd21e340b..d2609b5fbc05b6824db0b813c651b41175d7b946 100644
--- a/HybirdApp/config/index.js
+++ b/HybirdApp/config/index.js
@@ -13,7 +13,7 @@ module.exports = {
proxyTable: {},
// Various Dev Server settings
- host: '200.200.200.220', // can be overwritten by process.env.HOST
+ host: '127.0.0.1', // can be overwritten by process.env.HOST
// host: 'localhost', // can be overwritten by process.env.HOST
port: 8080, // can be overwritten by process.env.HOST, if port is in use, a free one will be determined
autoOpenBrowser: false,
@@ -51,10 +51,13 @@ module.exports = {
build: {
// Template for index.html
- index: path.resolve(__dirname, '../dist/index.html'),
+ // E:\qwq\CODE\ZWebView\entry\src\main\resources\rawfile\static\js
+ // index: path.resolve(__dirname, '../dist/index.html'),
+ index: path.resolve(__dirname, 'E:/qwq/CODE/ZWebView/entry/src/main/resources/rawfile/index.html'),
// Paths
- assetsRoot: path.resolve(__dirname, '../dist'),
+ assetsRoot: path.resolve(__dirname, 'E:/qwq/CODE/ZWebView/entry/src/main/resources/rawfile'),
+ // assetsRoot: path.resolve(__dirname, '../dist'),
assetsSubDirectory: 'static',
assetsPublicPath: '',
@@ -62,7 +65,7 @@ module.exports = {
* Source Maps
*/
- productionSourceMap: true,
+ productionSourceMap: false,
// https://webpack.js.org/configuration/devtool/#production
devtool: '#source-map',
diff --git a/HybirdApp/index.html b/HybirdApp/index.html
index 99b6ac46b8ea7751299b0e36e8fd6faee378776b..d9bc85b914bbdfa016fdc463a6b1b0ae86acaeea 100644
--- a/HybirdApp/index.html
+++ b/HybirdApp/index.html
@@ -13,14 +13,17 @@
-
+
+
-
+
+
+
-