You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ji...@apache.org on 2019/07/16 02:28:37 UTC
[incubator-weex] branch master updated: iOS playground seperation
(#2709)
This is an automated email from the ASF dual-hosted git repository.
jianhan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-weex.git
The following commit(s) were added to refs/heads/master by this push:
new 5f01b57 iOS playground seperation (#2709)
5f01b57 is described below
commit 5f01b57c2133b12135d243ad1bd40c4425654c3f
Author: Renmin <33...@users.noreply.github.com>
AuthorDate: Tue Jul 16 10:28:30 2019 +0800
iOS playground seperation (#2709)
* merge
* delete ios/playground
* update The playground submodule when clone the ‘incubator-weex’ repo and build it
* add README.md
---
ios/README.md | 13 +
ios/playground/Podfile | 24 -
ios/playground/README.md | 0
ios/playground/WeexDemo.xcodeproj/project.pbxproj | 979 ------
.../project.xcworkspace/contents.xcworkspacedata | 7 -
.../xcshareddata/IDEWorkspaceChecks.plist | 8 -
.../xcshareddata/xcschemes/WeexDemo.xcscheme | 124 -
.../xcshareddata/xcschemes/WeexUITestDemo.xcscheme | 91 -
.../WeexDemo.xcworkspace/contents.xcworkspacedata | 10 -
.../xcshareddata/IDEWorkspaceChecks.plist | 8 -
ios/playground/WeexDemo/AppDelegate.h | 29 -
ios/playground/WeexDemo/AppDelegate.m | 290 --
.../AppIcon.appiconset/AppStoreIcon1024.png | Bin 150730 -> 0 bytes
.../AppIcon.appiconset/Contents.json | 112 -
.../Assets.xcassets/AppIcon.appiconset/Icon-29.png | Bin 1614 -> 0 bytes
.../AppIcon.appiconset/Icon-29@2x-1.png | Bin 2421 -> 0 bytes
.../AppIcon.appiconset/Icon-29@2x.png | Bin 2421 -> 0 bytes
.../AppIcon.appiconset/Icon-29@3x.png | Bin 3236 -> 0 bytes
.../Assets.xcassets/AppIcon.appiconset/Icon-40.png | Bin 1946 -> 0 bytes
.../AppIcon.appiconset/Icon-40@2x-1.png | Bin 3016 -> 0 bytes
.../AppIcon.appiconset/Icon-40@2x.png | Bin 3016 -> 0 bytes
.../AppIcon.appiconset/Icon-40@3x.png | Bin 4172 -> 0 bytes
.../AppIcon.appiconset/Icon-60@2x.png | Bin 4172 -> 0 bytes
.../AppIcon.appiconset/Icon-60@3x.png | Bin 6017 -> 0 bytes
.../Assets.xcassets/AppIcon.appiconset/Icon-76.png | Bin 2918 -> 0 bytes
.../AppIcon.appiconset/Icon-76@2x.png | Bin 5088 -> 0 bytes
.../AppIcon.appiconset/Icon-83.5@2x.png | Bin 5537 -> 0 bytes
.../WeexDemo/Assets.xcassets/Contents.json | 6 -
.../LaunchImage.launchimage/Contents.json | 88 -
.../LaunchImage.launchimage/Default-568h@2x.png | Bin 22184 -> 0 bytes
.../LaunchImage.launchimage/Default@2x.png | Bin 19694 -> 0 bytes
.../LaunchImage.launchimage/Retinal HD 4.7.png | Bin 33603 -> 0 bytes
.../LaunchImage.launchimage/Retinal HD 5.5.png | Bin 72798 -> 0 bytes
.../iPhone5.5-landscape.png | Bin 66768 -> 0 bytes
.../LaunchImage.launchimage/iPhoneX-landscape.png | Bin 68749 -> 0 bytes
.../LaunchImage.launchimage/iPhoneX@3x.png | Bin 68622 -> 0 bytes
.../LaunchImage.launchimage/iPhoneXMax@3x.png | Bin 85516 -> 0 bytes
.../LaunchImage.launchimage/iPhoneXR@2x.png | Bin 41740 -> 0 bytes
.../Assets.xcassets/back.imageset/Contents.json | 23 -
.../Assets.xcassets/back.imageset/back.png | Bin 1244 -> 0 bytes
.../Assets.xcassets/back.imageset/back@2x.png | Bin 1646 -> 0 bytes
.../Assets.xcassets/back.imageset/back@3x.png | Bin 2179 -> 0 bytes
.../Assets.xcassets/delete.imageset/Contents.json | 23 -
.../Assets.xcassets/delete.imageset/delete.png | Bin 289 -> 0 bytes
.../Assets.xcassets/delete.imageset/delete@2x.png | Bin 504 -> 0 bytes
.../Assets.xcassets/delete.imageset/delete@3x.png | Bin 690 -> 0 bytes
.../Assets.xcassets/reload.imageset/Contents.json | 23 -
.../Assets.xcassets/reload.imageset/reload.png | Bin 542 -> 0 bytes
.../Assets.xcassets/reload.imageset/reload@2x.png | Bin 1037 -> 0 bytes
.../Assets.xcassets/reload.imageset/reload@3x.png | Bin 1516 -> 0 bytes
.../Assets.xcassets/scan.imageset/Contents.json | 23 -
.../Assets.xcassets/scan.imageset/scan.png | Bin 1344 -> 0 bytes
.../Assets.xcassets/scan.imageset/scan@2x.png | Bin 2458 -> 0 bytes
.../Assets.xcassets/scan.imageset/scan@3x.png | Bin 3723 -> 0 bytes
.../scan_history.imageset/Contents.json | 23 -
.../scan_history.imageset/history.png | Bin 546 -> 0 bytes
.../scan_history.imageset/history@2x.png | Bin 1037 -> 0 bytes
.../scan_history.imageset/history@3x.png | Bin 1628 -> 0 bytes
ios/playground/WeexDemo/DemoBaseViewController.h | 24 -
ios/playground/WeexDemo/DemoBaseViewController.m | 45 -
ios/playground/WeexDemo/DemoDefine.h | 41 -
.../Brand Assets.launchimage/Contents.json | 21 -
ios/playground/WeexDemo/Info.plist | 94 -
.../WeexDemo/Scanner/WXScannerHistoryVC.h | 24 -
.../WeexDemo/Scanner/WXScannerHistoryVC.m | 225 --
ios/playground/WeexDemo/Scanner/WXScannerVC.h | 25 -
ios/playground/WeexDemo/Scanner/WXScannerVC.m | 242 --
ios/playground/WeexDemo/UIView+UIThreadCheck.h | 26 -
ios/playground/WeexDemo/UIView+UIThreadCheck.m | 53 -
.../WeexDemo/UIViewController+WXDemoNaviBar.h | 34 -
.../WeexDemo/UIViewController+WXDemoNaviBar.m | 138 -
.../WeexDemo/WXConfigCenterDefaultImpl.h | 25 -
.../WeexDemo/WXConfigCenterDefaultImpl.m | 45 -
ios/playground/WeexDemo/WXDemoViewController.h | 32 -
ios/playground/WeexDemo/WXDemoViewController.m | 348 --
ios/playground/WeexDemo/WXExtModule.h | 26 -
ios/playground/WeexDemo/WXExtModule.m | 57 -
ios/playground/WeexDemo/WXExtendCallNativeTest.h | 25 -
ios/playground/WeexDemo/WXExtendCallNativeTest.m | 47 -
ios/playground/WeexDemo/WXNavigationHandlerImpl.h | 25 -
ios/playground/WeexDemo/WXNavigationHandlerImpl.m | 74 -
ios/playground/WeexDemo/WXSyncTestModule.h | 25 -
ios/playground/WeexDemo/WXSyncTestModule.m | 49 -
.../WeexDemo/Websocket/SRWebSocket+Weex.h | 29 -
.../WeexDemo/Websocket/SRWebSocket+Weex.m | 47 -
.../WeexDemo/Websocket/WXWebSocketDefaultImpl.h | 25 -
.../WeexDemo/Websocket/WXWebSocketDefaultImpl.m | 120 -
ios/playground/WeexDemo/debug/DebugAnalyzer.h | 24 -
ios/playground/WeexDemo/debug/DebugAnzlyzer.m | 30 -
ios/playground/WeexDemo/debug/WXATLoggerPlugin.h | 25 -
ios/playground/WeexDemo/debug/WXATLoggerPlugin.m | 65 -
.../WeexDemo/debug/WXATViewHierarchyPlugin.h | 25 -
.../WeexDemo/debug/WXATViewHierarchyPlugin.m | 54 -
.../WeexDemo/extend/component/WXSelectComponent.h | 25 -
.../WeexDemo/extend/component/WXSelectComponent.m | 149 -
.../WeexDemo/extend/handler/WXApmGeneratorImpl.h | 25 -
.../WeexDemo/extend/handler/WXApmGeneratorImpl.m | 31 -
ios/playground/WeexDemo/extend/handler/WXApmImpl.h | 25 -
ios/playground/WeexDemo/extend/handler/WXApmImpl.m | 149 -
.../extend/handler/WXImgLoaderDefaultImpl.h | 24 -
.../extend/handler/WXImgLoaderDefaultImpl.m | 119 -
.../WeexDemo/extend/module/WXEventModule.h | 26 -
.../WeexDemo/extend/module/WXEventModule.m | 68 -
.../WeexDemo/extend/module/WXTitleBarModule.h | 14 -
.../WeexDemo/extend/module/WXTitleBarModule.m | 48 -
ios/playground/WeexDemo/main.m | 27 -
ios/playground/WeexDemo/weex-icon.png | Bin 53574 -> 0 bytes
ios/playground/WeexDemoTests/Info.plist | 28 -
ios/playground/WeexDemoTests/WeexDemoTests.m | 50 -
ios/playground/WeexUITestDemo-Info.plist | 52 -
ios/playground/WeexUITestDemoUITests/Info.plist | 24 -
.../WeexUITestDemoUITests/WeexUITestDemoUITests.m | 51 -
ios/playground/bundlejs/about.weex.js | 3309 --------------------
ios/playground/bundlejs/examples.weex.js | 2598 ---------------
ios/playground/bundlejs/guide.weex.js | 3191 -------------------
ios/playground/bundlejs/landing.weex.js | 2319 --------------
ios/playground/bundlejs/news.weex.js | 2266 --------------
ios/playground/weex.png | Bin 3187 -> 0 bytes
ios/playground/weex@2x.png | Bin 7294 -> 0 bytes
ios/sdk/buildScripts.sh | 4 +
120 files changed, 17 insertions(+), 18723 deletions(-)
diff --git a/ios/README.md b/ios/README.md
new file mode 100644
index 0000000..837a5b5
--- /dev/null
+++ b/ios/README.md
@@ -0,0 +1,13 @@
+## The submodule weex-playground
+
+[Weex Playground](https://github.com/apache/incubator-weex-playground/tree/master/ios) can be used to test and preview weex pages on iOS and it has been added as a submodule.
+
+### Relationship between weex and playground
+
+- The playground submodule will be cloned and updated automatically when developers clone the ‘incubator-weex’ repo and build it. In this case, playground project will use the current incubator-weex project as it's pod source.
+
+- When developer directly clone the 'weex-playground' repo and run it separately, the playground project will use the lastest incubator-weex project in master branch as it's pod source.
+
+
+
+
\ No newline at end of file
diff --git a/ios/playground/Podfile b/ios/playground/Podfile
deleted file mode 100644
index 5dca1b5..0000000
--- a/ios/playground/Podfile
+++ /dev/null
@@ -1,24 +0,0 @@
-source 'https://github.com/CocoaPods/Specs.git'
-platform :ios, '9.0'
-#inhibit_all_warnings!
-
-def common
- pod 'WeexSDK', :path=>'../../'
- pod 'WXDevtool','0.20.0'
- pod 'SDWebImage', '3.7.5'
- pod 'SDWebImage/WebP'
- pod 'SocketRocket', '0.4.2'
- pod 'ATSDK-Weex', '0.0.1',:configurations => ['Debug']
- pod 'BindingX', '1.0.3'
-
- # WeexGcanvas is added by Weex Plugin, more info at https://market.dotwe.org/ext/list.htm
- #pod 'WeexGcanvas'
-end
-
-target 'WeexDemo' do
- common
-end
-
-target 'WeexUITestDemo' do
- common
-end
diff --git a/ios/playground/README.md b/ios/playground/README.md
deleted file mode 100644
index e69de29..0000000
diff --git a/ios/playground/WeexDemo.xcodeproj/project.pbxproj b/ios/playground/WeexDemo.xcodeproj/project.pbxproj
deleted file mode 100644
index 06a0db7..0000000
--- a/ios/playground/WeexDemo.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,979 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 46;
- objects = {
-
-/* Begin PBXBuildFile section */
- 17036A5720FDF9AA0029AE3D /* WXApmGeneratorImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = 17036A5620FDF9AA0029AE3D /* WXApmGeneratorImpl.m */; };
- 17036A5A20FDF9DF0029AE3D /* WXApmImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = 17036A5920FDF9DF0029AE3D /* WXApmImpl.m */; };
- 17C1DB57206B675D000E0CEB /* DebugAnzlyzer.m in Sources */ = {isa = PBXBuildFile; fileRef = 17C1DB56206B675D000E0CEB /* DebugAnzlyzer.m */; };
- 2AE88A2C1C8544E6003329DE /* WXScannerVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AE88A2B1C8544E6003329DE /* WXScannerVC.m */; };
- 3375BEE821C74C5C003CAAB8 /* WXWebSocketDefaultImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = 3375BEE521C74C5C003CAAB8 /* WXWebSocketDefaultImpl.m */; };
- 3375BEE921C74C5C003CAAB8 /* SRWebSocket+Weex.m in Sources */ = {isa = PBXBuildFile; fileRef = 3375BEE721C74C5C003CAAB8 /* SRWebSocket+Weex.m */; };
- 564B94671DD9C65000441C8D /* WeexUITestDemo-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 564B94661DD9C65000441C8D /* WeexUITestDemo-Info.plist */; };
- 59EA0DA71D2E7D19004F904A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 59EA0DA61D2E7D19004F904A /* Images.xcassets */; };
- 7478481E1E0CD4910044500D /* WXSyncTestModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 7478481D1E0CD4910044500D /* WXSyncTestModule.m */; };
- 747DF6681E2F176A005C53A8 /* UIView+UIThreadCheck.m in Sources */ = {isa = PBXBuildFile; fileRef = 747DF6671E2F176A005C53A8 /* UIView+UIThreadCheck.m */; };
- 74CC79EB1C2B9E4700829368 /* UIViewController+WXDemoNaviBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 74CC79EA1C2B9E4700829368 /* UIViewController+WXDemoNaviBar.m */; };
- 775BEE801C1E8ECC008D1629 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 775BEE7F1C1E8ECC008D1629 /* main.m */; };
- 775BEE831C1E8ECC008D1629 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 775BEE821C1E8ECC008D1629 /* AppDelegate.m */; };
- 775BEE861C1E8ECC008D1629 /* WXDemoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 775BEE851C1E8ECC008D1629 /* WXDemoViewController.m */; };
- 775BEE8B1C1E8ECC008D1629 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 775BEE8A1C1E8ECC008D1629 /* Assets.xcassets */; };
- 775BEE991C1E8ECC008D1629 /* WeexDemoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 775BEE981C1E8ECC008D1629 /* WeexDemoTests.m */; };
- 84361D2F1CA10F8E00F43825 /* WXScannerVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AE88A2B1C8544E6003329DE /* WXScannerVC.m */; };
- 84361D331CA10F8E00F43825 /* WXDemoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 775BEE851C1E8ECC008D1629 /* WXDemoViewController.m */; };
- 84361D371CA10F8E00F43825 /* UIViewController+WXDemoNaviBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 74CC79EA1C2B9E4700829368 /* UIViewController+WXDemoNaviBar.m */; };
- 84361D381CA10F8E00F43825 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 775BEE821C1E8ECC008D1629 /* AppDelegate.m */; };
- 84361D3B1CA10F8E00F43825 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 775BEE7F1C1E8ECC008D1629 /* main.m */; };
- 84361D421CA10F8E00F43825 /* libPods-WeexDemo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7601607D735D7F8D88971230 /* libPods-WeexDemo.a */; };
- 84361D5B1CA10F8E00F43825 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 775BEE8A1C1E8ECC008D1629 /* Assets.xcassets */; };
- 846FC8DA1E1B853100949E7D /* WXSyncTestModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 7478481D1E0CD4910044500D /* WXSyncTestModule.m */; };
- 846FC8DB1E1B853600949E7D /* WXATViewHierarchyPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = DCABAFF21D029685001C8592 /* WXATViewHierarchyPlugin.m */; };
- 847CAF2B1F39BB6B00551725 /* UIView+UIThreadCheck.m in Sources */ = {isa = PBXBuildFile; fileRef = 747DF6671E2F176A005C53A8 /* UIView+UIThreadCheck.m */; };
- 847CAF2C1F39BB8A00551725 /* WXATLoggerPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = DCABAFF01D029685001C8592 /* WXATLoggerPlugin.m */; };
- 847CAF2D1F39BBB900551725 /* WXScannerHistoryVC.m in Sources */ = {isa = PBXBuildFile; fileRef = DC5B53681E8CED9400E02125 /* WXScannerHistoryVC.m */; };
- 847CAF2E1F39BBFB00551725 /* WXConfigCenterDefaultImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = DC20B8E51ECADA2500845F39 /* WXConfigCenterDefaultImpl.m */; };
- 847CAF311F39E3F100551725 /* WXExtModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 847CAF301F39E3F100551725 /* WXExtModule.m */; };
- 84D7CAC71CE3266C00D48D46 /* libsqlite3.0.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 7475ACA01CD8444A0044E96C /* libsqlite3.0.tbd */; };
- 8A0B5EFFF75BF82EA481983D /* libPods-WeexUITestDemo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E48C20F443AA337D1FE97622 /* libPods-WeexUITestDemo.a */; };
- B83A6C5220FF16D50053BCEF /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B83A6C5120FF16D50053BCEF /* libc++.tbd */; };
- C43CDA031F1C6E01005A6B03 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = C43CDA021F1C6E01005A6B03 /* libz.tbd */; };
- C47B78D21F299E27001D3B0C /* WXExtendCallNativeTest.m in Sources */ = {isa = PBXBuildFile; fileRef = C47B78D11F299E27001D3B0C /* WXExtendCallNativeTest.m */; };
- DC15A3C7200C505C009C8977 /* WXTitleBarModule.m in Sources */ = {isa = PBXBuildFile; fileRef = DC15A3C6200C505C009C8977 /* WXTitleBarModule.m */; };
- DC15A3D0200E30FC009C8977 /* WXNavigationHandlerImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = DC15A3CE200E30FC009C8977 /* WXNavigationHandlerImpl.m */; };
- DC20B8E61ECADA2500845F39 /* WXConfigCenterDefaultImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = DC20B8E51ECADA2500845F39 /* WXConfigCenterDefaultImpl.m */; };
- DC5B53691E8CED9400E02125 /* WXScannerHistoryVC.m in Sources */ = {isa = PBXBuildFile; fileRef = DC5B53681E8CED9400E02125 /* WXScannerHistoryVC.m */; };
- DC5E503E1D0D97130059F0EB /* weex.png in Resources */ = {isa = PBXBuildFile; fileRef = DC5E503C1D0D97130059F0EB /* weex.png */; };
- DC5E503F1D0D97130059F0EB /* weex@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DC5E503D1D0D97130059F0EB /* weex@2x.png */; };
- DC65C4FA1CEB032F00B2F84F /* bundlejs in Resources */ = {isa = PBXBuildFile; fileRef = DC65C4F91CEB032F00B2F84F /* bundlejs */; };
- DC6DD9D21CFE9BC400549297 /* libsqlite3.0.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 7475ACA01CD8444A0044E96C /* libsqlite3.0.tbd */; };
- DCA812FA1D0401500029BF62 /* WXEventModule.m in Sources */ = {isa = PBXBuildFile; fileRef = DCABB0001D02975E001C8592 /* WXEventModule.m */; };
- DCA812FB1D0401570029BF62 /* WXImgLoaderDefaultImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = DCABAFFD1D029753001C8592 /* WXImgLoaderDefaultImpl.m */; };
- DCABAFF31D029685001C8592 /* WXATLoggerPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = DCABAFF01D029685001C8592 /* WXATLoggerPlugin.m */; };
- DCABAFF41D029685001C8592 /* WXATViewHierarchyPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = DCABAFF21D029685001C8592 /* WXATViewHierarchyPlugin.m */; };
- DCABAFFE1D029753001C8592 /* WXImgLoaderDefaultImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = DCABAFFD1D029753001C8592 /* WXImgLoaderDefaultImpl.m */; };
- DCABB0011D02975E001C8592 /* WXEventModule.m in Sources */ = {isa = PBXBuildFile; fileRef = DCABB0001D02975E001C8592 /* WXEventModule.m */; };
- DCD286E01CF491AC00C601CA /* weex-icon.png in Resources */ = {isa = PBXBuildFile; fileRef = DCD286DF1CF491AC00C601CA /* weex-icon.png */; };
- EAEC716BE3E43DBC8494EC51 /* libPods-WeexDemo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7601607D735D7F8D88971230 /* libPods-WeexDemo.a */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- 775BEE951C1E8ECC008D1629 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 775BEE731C1E8ECC008D1629 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 775BEE7A1C1E8ECC008D1629;
- remoteInfo = WeexDemo;
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
- 17036A5520FDF9AA0029AE3D /* WXApmGeneratorImpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WXApmGeneratorImpl.h; path = extend/handler/WXApmGeneratorImpl.h; sourceTree = "<group>"; };
- 17036A5620FDF9AA0029AE3D /* WXApmGeneratorImpl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = WXApmGeneratorImpl.m; path = extend/handler/WXApmGeneratorImpl.m; sourceTree = "<group>"; };
- 17036A5820FDF9DF0029AE3D /* WXApmImpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WXApmImpl.h; path = extend/handler/WXApmImpl.h; sourceTree = "<group>"; };
- 17036A5920FDF9DF0029AE3D /* WXApmImpl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = WXApmImpl.m; path = extend/handler/WXApmImpl.m; sourceTree = "<group>"; };
- 17C1DB55206B6729000E0CEB /* DebugAnalyzer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = DebugAnalyzer.h; path = debug/DebugAnalyzer.h; sourceTree = "<group>"; };
- 17C1DB56206B675D000E0CEB /* DebugAnzlyzer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = DebugAnzlyzer.m; path = debug/DebugAnzlyzer.m; sourceTree = "<group>"; };
- 1888E2C5769382461DEDC97D /* Pods-WeexUITestDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WeexUITestDemo.release.xcconfig"; path = "Pods/Target Support Files/Pods-WeexUITestDemo/Pods-WeexUITestDemo.release.xcconfig"; sourceTree = "<group>"; };
- 2278B1B1FCE894EDAF9F0171 /* Pods-WeexUITestDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WeexUITestDemo.debug.xcconfig"; path = "Pods/Target Support Files/Pods-WeexUITestDemo/Pods-WeexUITestDemo.debug.xcconfig"; sourceTree = "<group>"; };
- 22E4D2883CC56188A2CA9C13 /* Pods-WeexDemo.uitest.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WeexDemo.uitest.xcconfig"; path = "Pods/Target Support Files/Pods-WeexDemo/Pods-WeexDemo.uitest.xcconfig"; sourceTree = "<group>"; };
- 2AE88A2A1C8544E6003329DE /* WXScannerVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WXScannerVC.h; path = Scanner/WXScannerVC.h; sourceTree = "<group>"; };
- 2AE88A2B1C8544E6003329DE /* WXScannerVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WXScannerVC.m; path = Scanner/WXScannerVC.m; sourceTree = "<group>"; };
- 3375BEE421C74C5C003CAAB8 /* SRWebSocket+Weex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SRWebSocket+Weex.h"; sourceTree = "<group>"; };
- 3375BEE521C74C5C003CAAB8 /* WXWebSocketDefaultImpl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXWebSocketDefaultImpl.m; sourceTree = "<group>"; };
- 3375BEE621C74C5C003CAAB8 /* WXWebSocketDefaultImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXWebSocketDefaultImpl.h; sourceTree = "<group>"; };
- 3375BEE721C74C5C003CAAB8 /* SRWebSocket+Weex.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SRWebSocket+Weex.m"; sourceTree = "<group>"; };
- 564B94661DD9C65000441C8D /* WeexUITestDemo-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "WeexUITestDemo-Info.plist"; sourceTree = "<group>"; };
- 59EA0DA61D2E7D19004F904A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
- 5AF8846546DAC65CAC038806 /* Pods-WeexDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WeexDemo.debug.xcconfig"; path = "Pods/Target Support Files/Pods-WeexDemo/Pods-WeexDemo.debug.xcconfig"; sourceTree = "<group>"; };
- 741DFE081DDDD519009B020F /* libstdc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libstdc++.tbd"; path = "usr/lib/libstdc++.tbd"; sourceTree = SDKROOT; };
- 7453E3641C9FA971001EB427 /* DemoDefine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoDefine.h; sourceTree = "<group>"; };
- 7475ACA01CD8444A0044E96C /* libsqlite3.0.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.0.tbd; path = usr/lib/libsqlite3.0.tbd; sourceTree = SDKROOT; };
- 7478481C1E0CD4910044500D /* WXSyncTestModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXSyncTestModule.h; sourceTree = "<group>"; };
- 7478481D1E0CD4910044500D /* WXSyncTestModule.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXSyncTestModule.m; sourceTree = "<group>"; };
- 747DF6661E2F176A005C53A8 /* UIView+UIThreadCheck.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+UIThreadCheck.h"; sourceTree = "<group>"; };
- 747DF6671E2F176A005C53A8 /* UIView+UIThreadCheck.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+UIThreadCheck.m"; sourceTree = "<group>"; };
- 74CC79E91C2B9E4700829368 /* UIViewController+WXDemoNaviBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIViewController+WXDemoNaviBar.h"; sourceTree = "<group>"; };
- 74CC79EA1C2B9E4700829368 /* UIViewController+WXDemoNaviBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIViewController+WXDemoNaviBar.m"; sourceTree = "<group>"; };
- 7601607D735D7F8D88971230 /* libPods-WeexDemo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-WeexDemo.a"; sourceTree = BUILT_PRODUCTS_DIR; };
- 775BEE7B1C1E8ECC008D1629 /* WeexDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WeexDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 775BEE7F1C1E8ECC008D1629 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
- 775BEE811C1E8ECC008D1629 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
- 775BEE821C1E8ECC008D1629 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
- 775BEE841C1E8ECC008D1629 /* WXDemoViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WXDemoViewController.h; sourceTree = "<group>"; };
- 775BEE851C1E8ECC008D1629 /* WXDemoViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = WXDemoViewController.m; sourceTree = "<group>"; };
- 775BEE8A1C1E8ECC008D1629 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
- 775BEE8F1C1E8ECC008D1629 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
- 775BEE941C1E8ECC008D1629 /* WeexDemoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WeexDemoTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
- 775BEE981C1E8ECC008D1629 /* WeexDemoTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = WeexDemoTests.m; sourceTree = "<group>"; };
- 775BEE9A1C1E8ECC008D1629 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
- 84361D751CA10F8E00F43825 /* WeexUITestDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WeexUITestDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 847CAF2F1F39E3F100551725 /* WXExtModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXExtModule.h; sourceTree = "<group>"; };
- 847CAF301F39E3F100551725 /* WXExtModule.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXExtModule.m; sourceTree = "<group>"; };
- 9420131417A731ED089B0814 /* Pods-WeexDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WeexDemo.release.xcconfig"; path = "Pods/Target Support Files/Pods-WeexDemo/Pods-WeexDemo.release.xcconfig"; sourceTree = "<group>"; };
- B83A6C5120FF16D50053BCEF /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
- C43CDA021F1C6E01005A6B03 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
- C47B78D01F299E27001D3B0C /* WXExtendCallNativeTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXExtendCallNativeTest.h; sourceTree = "<group>"; };
- C47B78D11F299E27001D3B0C /* WXExtendCallNativeTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXExtendCallNativeTest.m; sourceTree = "<group>"; };
- DC15A3C5200C505C009C8977 /* WXTitleBarModule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WXTitleBarModule.h; path = extend/module/WXTitleBarModule.h; sourceTree = "<group>"; };
- DC15A3C6200C505C009C8977 /* WXTitleBarModule.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = WXTitleBarModule.m; path = extend/module/WXTitleBarModule.m; sourceTree = "<group>"; };
- DC15A3CE200E30FC009C8977 /* WXNavigationHandlerImpl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXNavigationHandlerImpl.m; sourceTree = "<group>"; };
- DC15A3CF200E30FC009C8977 /* WXNavigationHandlerImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXNavigationHandlerImpl.h; sourceTree = "<group>"; };
- DC20B8E41ECADA2500845F39 /* WXConfigCenterDefaultImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXConfigCenterDefaultImpl.h; sourceTree = "<group>"; };
- DC20B8E51ECADA2500845F39 /* WXConfigCenterDefaultImpl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXConfigCenterDefaultImpl.m; sourceTree = "<group>"; };
- DC5B53671E8CED9400E02125 /* WXScannerHistoryVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WXScannerHistoryVC.h; path = Scanner/WXScannerHistoryVC.h; sourceTree = "<group>"; };
- DC5B53681E8CED9400E02125 /* WXScannerHistoryVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WXScannerHistoryVC.m; path = Scanner/WXScannerHistoryVC.m; sourceTree = "<group>"; };
- DC5E503C1D0D97130059F0EB /* weex.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = weex.png; sourceTree = "<group>"; };
- DC5E503D1D0D97130059F0EB /* weex@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "weex@2x.png"; sourceTree = "<group>"; };
- DC65C4F91CEB032F00B2F84F /* bundlejs */ = {isa = PBXFileReference; lastKnownFileType = folder; path = bundlejs; sourceTree = "<group>"; };
- DCABAFEF1D029685001C8592 /* WXATLoggerPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WXATLoggerPlugin.h; path = debug/WXATLoggerPlugin.h; sourceTree = "<group>"; };
- DCABAFF01D029685001C8592 /* WXATLoggerPlugin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WXATLoggerPlugin.m; path = debug/WXATLoggerPlugin.m; sourceTree = "<group>"; };
- DCABAFF11D029685001C8592 /* WXATViewHierarchyPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WXATViewHierarchyPlugin.h; path = debug/WXATViewHierarchyPlugin.h; sourceTree = "<group>"; };
- DCABAFF21D029685001C8592 /* WXATViewHierarchyPlugin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WXATViewHierarchyPlugin.m; path = debug/WXATViewHierarchyPlugin.m; sourceTree = "<group>"; };
- DCABAFF91D029748001C8592 /* WXSelectComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WXSelectComponent.h; path = extend/component/WXSelectComponent.h; sourceTree = "<group>"; };
- DCABAFFA1D029748001C8592 /* WXSelectComponent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WXSelectComponent.m; path = extend/component/WXSelectComponent.m; sourceTree = "<group>"; };
- DCABAFFC1D029753001C8592 /* WXImgLoaderDefaultImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WXImgLoaderDefaultImpl.h; path = extend/handler/WXImgLoaderDefaultImpl.h; sourceTree = "<group>"; };
- DCABAFFD1D029753001C8592 /* WXImgLoaderDefaultImpl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WXImgLoaderDefaultImpl.m; path = extend/handler/WXImgLoaderDefaultImpl.m; sourceTree = "<group>"; };
- DCABAFFF1D02975E001C8592 /* WXEventModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WXEventModule.h; path = extend/module/WXEventModule.h; sourceTree = "<group>"; };
- DCABB0001D02975E001C8592 /* WXEventModule.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WXEventModule.m; path = extend/module/WXEventModule.m; sourceTree = "<group>"; };
- DCD286DF1CF491AC00C601CA /* weex-icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "weex-icon.png"; path = "WeexDemo/weex-icon.png"; sourceTree = "<group>"; };
- E48C20F443AA337D1FE97622 /* libPods-WeexUITestDemo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-WeexUITestDemo.a"; sourceTree = BUILT_PRODUCTS_DIR; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 775BEE781C1E8ECC008D1629 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- B83A6C5220FF16D50053BCEF /* libc++.tbd in Frameworks */,
- C43CDA031F1C6E01005A6B03 /* libz.tbd in Frameworks */,
- DC6DD9D21CFE9BC400549297 /* libsqlite3.0.tbd in Frameworks */,
- EAEC716BE3E43DBC8494EC51 /* libPods-WeexDemo.a in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 775BEE911C1E8ECC008D1629 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 84361D3C1CA10F8E00F43825 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 84D7CAC71CE3266C00D48D46 /* libsqlite3.0.tbd in Frameworks */,
- 84361D421CA10F8E00F43825 /* libPods-WeexDemo.a in Frameworks */,
- 8A0B5EFFF75BF82EA481983D /* libPods-WeexUITestDemo.a in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 2AE88A291C8544D7003329DE /* scanner */ = {
- isa = PBXGroup;
- children = (
- 2AE88A2A1C8544E6003329DE /* WXScannerVC.h */,
- 2AE88A2B1C8544E6003329DE /* WXScannerVC.m */,
- DC5B53671E8CED9400E02125 /* WXScannerHistoryVC.h */,
- DC5B53681E8CED9400E02125 /* WXScannerHistoryVC.m */,
- );
- name = scanner;
- sourceTree = "<group>";
- };
- 327BB19797F63D5309FB91BF /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- B83A6C5120FF16D50053BCEF /* libc++.tbd */,
- C43CDA021F1C6E01005A6B03 /* libz.tbd */,
- 741DFE081DDDD519009B020F /* libstdc++.tbd */,
- 7475ACA01CD8444A0044E96C /* libsqlite3.0.tbd */,
- 7601607D735D7F8D88971230 /* libPods-WeexDemo.a */,
- E48C20F443AA337D1FE97622 /* libPods-WeexUITestDemo.a */,
- );
- name = Frameworks;
- sourceTree = "<group>";
- };
- 3375BEE321C74C5C003CAAB8 /* Websocket */ = {
- isa = PBXGroup;
- children = (
- 3375BEE421C74C5C003CAAB8 /* SRWebSocket+Weex.h */,
- 3375BEE521C74C5C003CAAB8 /* WXWebSocketDefaultImpl.m */,
- 3375BEE621C74C5C003CAAB8 /* WXWebSocketDefaultImpl.h */,
- 3375BEE721C74C5C003CAAB8 /* SRWebSocket+Weex.m */,
- );
- path = Websocket;
- sourceTree = "<group>";
- };
- 74CC79EC1C2B9FC600829368 /* Demo */ = {
- isa = PBXGroup;
- children = (
- DCABAFF51D0296DB001C8592 /* extend */,
- D5ADF0861C77133B00597CA6 /* Source */,
- );
- name = Demo;
- sourceTree = "<group>";
- };
- 775BEE721C1E8ECC008D1629 = {
- isa = PBXGroup;
- children = (
- 775BEE7D1C1E8ECC008D1629 /* WeexDemo */,
- 775BEE971C1E8ECC008D1629 /* WeexDemoTests */,
- 775BEE7C1C1E8ECC008D1629 /* Products */,
- A9E45DD060512F73B9F51C03 /* Pods */,
- 327BB19797F63D5309FB91BF /* Frameworks */,
- DC65C4421CEB006C00B2F84F /* resource */,
- 564B94661DD9C65000441C8D /* WeexUITestDemo-Info.plist */,
- );
- sourceTree = "<group>";
- };
- 775BEE7C1C1E8ECC008D1629 /* Products */ = {
- isa = PBXGroup;
- children = (
- 775BEE7B1C1E8ECC008D1629 /* WeexDemo.app */,
- 775BEE941C1E8ECC008D1629 /* WeexDemoTests.xctest */,
- 84361D751CA10F8E00F43825 /* WeexUITestDemo.app */,
- );
- name = Products;
- sourceTree = "<group>";
- };
- 775BEE7D1C1E8ECC008D1629 /* WeexDemo */ = {
- isa = PBXGroup;
- children = (
- 74CC79EC1C2B9FC600829368 /* Demo */,
- 775BEE8A1C1E8ECC008D1629 /* Assets.xcassets */,
- 775BEE8F1C1E8ECC008D1629 /* Info.plist */,
- 59EA0DA61D2E7D19004F904A /* Images.xcassets */,
- 775BEE7E1C1E8ECC008D1629 /* Supporting Files */,
- );
- path = WeexDemo;
- sourceTree = "<group>";
- };
- 775BEE7E1C1E8ECC008D1629 /* Supporting Files */ = {
- isa = PBXGroup;
- children = (
- 775BEE7F1C1E8ECC008D1629 /* main.m */,
- );
- name = "Supporting Files";
- sourceTree = "<group>";
- };
- 775BEE971C1E8ECC008D1629 /* WeexDemoTests */ = {
- isa = PBXGroup;
- children = (
- 775BEE981C1E8ECC008D1629 /* WeexDemoTests.m */,
- 775BEE9A1C1E8ECC008D1629 /* Info.plist */,
- );
- path = WeexDemoTests;
- sourceTree = "<group>";
- };
- A9E45DD060512F73B9F51C03 /* Pods */ = {
- isa = PBXGroup;
- children = (
- 5AF8846546DAC65CAC038806 /* Pods-WeexDemo.debug.xcconfig */,
- 9420131417A731ED089B0814 /* Pods-WeexDemo.release.xcconfig */,
- 22E4D2883CC56188A2CA9C13 /* Pods-WeexDemo.uitest.xcconfig */,
- 2278B1B1FCE894EDAF9F0171 /* Pods-WeexUITestDemo.debug.xcconfig */,
- 1888E2C5769382461DEDC97D /* Pods-WeexUITestDemo.release.xcconfig */,
- );
- name = Pods;
- sourceTree = "<group>";
- };
- D5ADF0861C77133B00597CA6 /* Source */ = {
- isa = PBXGroup;
- children = (
- 2AE88A291C8544D7003329DE /* scanner */,
- DCABAFED1D029642001C8592 /* debug */,
- 74CC79E91C2B9E4700829368 /* UIViewController+WXDemoNaviBar.h */,
- 74CC79EA1C2B9E4700829368 /* UIViewController+WXDemoNaviBar.m */,
- 775BEE811C1E8ECC008D1629 /* AppDelegate.h */,
- 775BEE821C1E8ECC008D1629 /* AppDelegate.m */,
- 775BEE841C1E8ECC008D1629 /* WXDemoViewController.h */,
- 775BEE851C1E8ECC008D1629 /* WXDemoViewController.m */,
- 747DF6661E2F176A005C53A8 /* UIView+UIThreadCheck.h */,
- 747DF6671E2F176A005C53A8 /* UIView+UIThreadCheck.m */,
- 7453E3641C9FA971001EB427 /* DemoDefine.h */,
- C47B78D01F299E27001D3B0C /* WXExtendCallNativeTest.h */,
- C47B78D11F299E27001D3B0C /* WXExtendCallNativeTest.m */,
- );
- name = Source;
- sourceTree = "<group>";
- };
- DC65C4421CEB006C00B2F84F /* resource */ = {
- isa = PBXGroup;
- children = (
- DCD286DF1CF491AC00C601CA /* weex-icon.png */,
- DC5E503C1D0D97130059F0EB /* weex.png */,
- DC5E503D1D0D97130059F0EB /* weex@2x.png */,
- DC65C4F91CEB032F00B2F84F /* bundlejs */,
- );
- name = resource;
- sourceTree = "<group>";
- };
- DCABAFED1D029642001C8592 /* debug */ = {
- isa = PBXGroup;
- children = (
- DCABAFEF1D029685001C8592 /* WXATLoggerPlugin.h */,
- DCABAFF01D029685001C8592 /* WXATLoggerPlugin.m */,
- DCABAFF11D029685001C8592 /* WXATViewHierarchyPlugin.h */,
- DCABAFF21D029685001C8592 /* WXATViewHierarchyPlugin.m */,
- 17C1DB55206B6729000E0CEB /* DebugAnalyzer.h */,
- 17C1DB56206B675D000E0CEB /* DebugAnzlyzer.m */,
- );
- name = debug;
- sourceTree = "<group>";
- };
- DCABAFF51D0296DB001C8592 /* extend */ = {
- isa = PBXGroup;
- children = (
- DCABAFF81D029716001C8592 /* component */,
- DCABAFF71D0296E8001C8592 /* handler */,
- DCABAFF61D0296E2001C8592 /* module */,
- );
- name = extend;
- sourceTree = "<group>";
- };
- DCABAFF61D0296E2001C8592 /* module */ = {
- isa = PBXGroup;
- children = (
- DCABAFFF1D02975E001C8592 /* WXEventModule.h */,
- DCABB0001D02975E001C8592 /* WXEventModule.m */,
- DC15A3C5200C505C009C8977 /* WXTitleBarModule.h */,
- DC15A3C6200C505C009C8977 /* WXTitleBarModule.m */,
- 7478481C1E0CD4910044500D /* WXSyncTestModule.h */,
- 7478481D1E0CD4910044500D /* WXSyncTestModule.m */,
- 847CAF2F1F39E3F100551725 /* WXExtModule.h */,
- 847CAF301F39E3F100551725 /* WXExtModule.m */,
- );
- name = module;
- sourceTree = "<group>";
- };
- DCABAFF71D0296E8001C8592 /* handler */ = {
- isa = PBXGroup;
- children = (
- 3375BEE321C74C5C003CAAB8 /* Websocket */,
- DC15A3CF200E30FC009C8977 /* WXNavigationHandlerImpl.h */,
- DC15A3CE200E30FC009C8977 /* WXNavigationHandlerImpl.m */,
- DC20B8E41ECADA2500845F39 /* WXConfigCenterDefaultImpl.h */,
- DC20B8E51ECADA2500845F39 /* WXConfigCenterDefaultImpl.m */,
- DCABAFFC1D029753001C8592 /* WXImgLoaderDefaultImpl.h */,
- DCABAFFD1D029753001C8592 /* WXImgLoaderDefaultImpl.m */,
- 17036A5520FDF9AA0029AE3D /* WXApmGeneratorImpl.h */,
- 17036A5620FDF9AA0029AE3D /* WXApmGeneratorImpl.m */,
- 17036A5820FDF9DF0029AE3D /* WXApmImpl.h */,
- 17036A5920FDF9DF0029AE3D /* WXApmImpl.m */,
- );
- name = handler;
- sourceTree = "<group>";
- };
- DCABAFF81D029716001C8592 /* component */ = {
- isa = PBXGroup;
- children = (
- DCABAFF91D029748001C8592 /* WXSelectComponent.h */,
- DCABAFFA1D029748001C8592 /* WXSelectComponent.m */,
- );
- name = component;
- sourceTree = "<group>";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 775BEE7A1C1E8ECC008D1629 /* WeexDemo */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 775BEEA81C1E8ECC008D1629 /* Build configuration list for PBXNativeTarget "WeexDemo" */;
- buildPhases = (
- B5825066F03BDD65A25F2701 /* [CP] Check Pods Manifest.lock */,
- 74CC7A221C2C13BF00829368 /* Start Samples */,
- 775BEE771C1E8ECC008D1629 /* Sources */,
- 775BEE781C1E8ECC008D1629 /* Frameworks */,
- 775BEE791C1E8ECC008D1629 /* Resources */,
- C715566148067A7FFAB7797D /* [CP] Copy Pods Resources */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = WeexDemo;
- productName = WeexDemo;
- productReference = 775BEE7B1C1E8ECC008D1629 /* WeexDemo.app */;
- productType = "com.apple.product-type.application";
- };
- 775BEE931C1E8ECC008D1629 /* WeexDemoTests */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 775BEEAB1C1E8ECC008D1629 /* Build configuration list for PBXNativeTarget "WeexDemoTests" */;
- buildPhases = (
- 775BEE901C1E8ECC008D1629 /* Sources */,
- 775BEE911C1E8ECC008D1629 /* Frameworks */,
- 775BEE921C1E8ECC008D1629 /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- 775BEE961C1E8ECC008D1629 /* PBXTargetDependency */,
- );
- name = WeexDemoTests;
- productName = WeexDemoTests;
- productReference = 775BEE941C1E8ECC008D1629 /* WeexDemoTests.xctest */;
- productType = "com.apple.product-type.bundle.unit-test";
- };
- 84361D261CA10F8E00F43825 /* WeexUITestDemo */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 84361D711CA10F8E00F43825 /* Build configuration list for PBXNativeTarget "WeexUITestDemo" */;
- buildPhases = (
- 84361D271CA10F8E00F43825 /* [CP] Check Pods Manifest.lock */,
- 84361D291CA10F8E00F43825 /* Sources */,
- 84361D3C1CA10F8E00F43825 /* Frameworks */,
- 84361D431CA10F8E00F43825 /* Resources */,
- 84361D6F1CA10F8E00F43825 /* [CP] Copy Pods Resources */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = WeexUITestDemo;
- productName = WeexDemo;
- productReference = 84361D751CA10F8E00F43825 /* WeexUITestDemo.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 775BEE731C1E8ECC008D1629 /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastUpgradeCheck = 0710;
- ORGANIZATIONNAME = taobao;
- TargetAttributes = {
- 775BEE7A1C1E8ECC008D1629 = {
- CreatedOnToolsVersion = 7.1.1;
- };
- 775BEE931C1E8ECC008D1629 = {
- CreatedOnToolsVersion = 7.1.1;
- DevelopmentTeam = 445VCMGQD2;
- TestTargetID = 775BEE7A1C1E8ECC008D1629;
- };
- };
- };
- buildConfigurationList = 775BEE761C1E8ECC008D1629 /* Build configuration list for PBXProject "WeexDemo" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
- hasScannedForEncodings = 0;
- knownRegions = (
- English,
- en,
- Base,
- );
- mainGroup = 775BEE721C1E8ECC008D1629;
- productRefGroup = 775BEE7C1C1E8ECC008D1629 /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- 775BEE7A1C1E8ECC008D1629 /* WeexDemo */,
- 775BEE931C1E8ECC008D1629 /* WeexDemoTests */,
- 84361D261CA10F8E00F43825 /* WeexUITestDemo */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
- 775BEE791C1E8ECC008D1629 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- DC5E503E1D0D97130059F0EB /* weex.png in Resources */,
- DC5E503F1D0D97130059F0EB /* weex@2x.png in Resources */,
- DCD286E01CF491AC00C601CA /* weex-icon.png in Resources */,
- 59EA0DA71D2E7D19004F904A /* Images.xcassets in Resources */,
- 564B94671DD9C65000441C8D /* WeexUITestDemo-Info.plist in Resources */,
- DC65C4FA1CEB032F00B2F84F /* bundlejs in Resources */,
- 775BEE8B1C1E8ECC008D1629 /* Assets.xcassets in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 775BEE921C1E8ECC008D1629 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 84361D431CA10F8E00F43825 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 84361D5B1CA10F8E00F43825 /* Assets.xcassets in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXShellScriptBuildPhase section */
- 74CC7A221C2C13BF00829368 /* Start Samples */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = "Start Samples";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "DEST=$CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH\n\nif [[ \"$CONFIGURATION\" = \"Debug\" && \"$PLATFORM_NAME\" != \"iphonesimulator\" ]]; then\nipconfig getifaddr en0 | awk '{printf(\"%s\",$0)}' > \"$DEST/localServer-ip.txt\"\nfi";
- };
- 84361D271CA10F8E00F43825 /* [CP] Check Pods Manifest.lock */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
- outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-WeexUITestDemo-checkManifestLockResult.txt",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
- showEnvVarsInLog = 0;
- };
- 84361D6F1CA10F8E00F43825 /* [CP] Copy Pods Resources */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- "${SRCROOT}/Pods/Target Support Files/Pods-WeexUITestDemo/Pods-WeexUITestDemo-resources.sh",
- "${PODS_ROOT}/ATSDK-Weex/ATSDK.framework/Versions/A/Resources/ATSDK.bundle",
- "${PODS_ROOT}/ATSDK-Weex/ATSDK.framework/Versions/A/Resources/en.lproj",
- "${PODS_ROOT}/ATSDK-Weex/ATSDK.framework/Versions/A/Resources/zh-Hans.lproj",
- "${PODS_ROOT}/../../../pre-build/native-bundle-main.js",
- "${PODS_ROOT}/../../../pre-build/weex-main-jsfm.js",
- "${PODS_ROOT}/../../../pre-build/weex-polyfill.js",
- "${PODS_ROOT}/../../../pre-build/weex-rax-api.js",
- "${PODS_ROOT}/../../sdk/WeexSDK/Resources/wx_load_error@3x.png",
- );
- name = "[CP] Copy Pods Resources";
- outputPaths = (
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ATSDK.bundle",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/en.lproj",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/zh-Hans.lproj",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/native-bundle-main.js",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/weex-main-jsfm.js",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/weex-polyfill.js",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/weex-rax-api.js",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/wx_load_error@3x.png",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-WeexUITestDemo/Pods-WeexUITestDemo-resources.sh\"\n";
- showEnvVarsInLog = 0;
- };
- B5825066F03BDD65A25F2701 /* [CP] Check Pods Manifest.lock */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
- outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-WeexDemo-checkManifestLockResult.txt",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
- showEnvVarsInLog = 0;
- };
- C715566148067A7FFAB7797D /* [CP] Copy Pods Resources */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- "${SRCROOT}/Pods/Target Support Files/Pods-WeexDemo/Pods-WeexDemo-resources.sh",
- "${PODS_ROOT}/ATSDK-Weex/ATSDK.framework/Versions/A/Resources/ATSDK.bundle",
- "${PODS_ROOT}/ATSDK-Weex/ATSDK.framework/Versions/A/Resources/en.lproj",
- "${PODS_ROOT}/ATSDK-Weex/ATSDK.framework/Versions/A/Resources/zh-Hans.lproj",
- "${PODS_ROOT}/../../../pre-build/native-bundle-main.js",
- "${PODS_ROOT}/../../../pre-build/weex-main-jsfm.js",
- "${PODS_ROOT}/../../../pre-build/weex-polyfill.js",
- "${PODS_ROOT}/../../../pre-build/weex-rax-api.js",
- "${PODS_ROOT}/../../sdk/WeexSDK/Resources/wx_load_error@3x.png",
- );
- name = "[CP] Copy Pods Resources";
- outputPaths = (
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ATSDK.bundle",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/en.lproj",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/zh-Hans.lproj",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/native-bundle-main.js",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/weex-main-jsfm.js",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/weex-polyfill.js",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/weex-rax-api.js",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/wx_load_error@3x.png",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-WeexDemo/Pods-WeexDemo-resources.sh\"\n";
- showEnvVarsInLog = 0;
- };
-/* End PBXShellScriptBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 775BEE771C1E8ECC008D1629 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 17C1DB57206B675D000E0CEB /* DebugAnzlyzer.m in Sources */,
- DCABAFF31D029685001C8592 /* WXATLoggerPlugin.m in Sources */,
- DC15A3D0200E30FC009C8977 /* WXNavigationHandlerImpl.m in Sources */,
- 3375BEE921C74C5C003CAAB8 /* SRWebSocket+Weex.m in Sources */,
- 2AE88A2C1C8544E6003329DE /* WXScannerVC.m in Sources */,
- 17036A5720FDF9AA0029AE3D /* WXApmGeneratorImpl.m in Sources */,
- 775BEE861C1E8ECC008D1629 /* WXDemoViewController.m in Sources */,
- DC5B53691E8CED9400E02125 /* WXScannerHistoryVC.m in Sources */,
- 74CC79EB1C2B9E4700829368 /* UIViewController+WXDemoNaviBar.m in Sources */,
- DCABB0011D02975E001C8592 /* WXEventModule.m in Sources */,
- 7478481E1E0CD4910044500D /* WXSyncTestModule.m in Sources */,
- 775BEE831C1E8ECC008D1629 /* AppDelegate.m in Sources */,
- 847CAF311F39E3F100551725 /* WXExtModule.m in Sources */,
- DC15A3C7200C505C009C8977 /* WXTitleBarModule.m in Sources */,
- 17036A5A20FDF9DF0029AE3D /* WXApmImpl.m in Sources */,
- DC20B8E61ECADA2500845F39 /* WXConfigCenterDefaultImpl.m in Sources */,
- DCABAFF41D029685001C8592 /* WXATViewHierarchyPlugin.m in Sources */,
- 775BEE801C1E8ECC008D1629 /* main.m in Sources */,
- DCABAFFE1D029753001C8592 /* WXImgLoaderDefaultImpl.m in Sources */,
- 747DF6681E2F176A005C53A8 /* UIView+UIThreadCheck.m in Sources */,
- C47B78D21F299E27001D3B0C /* WXExtendCallNativeTest.m in Sources */,
- 3375BEE821C74C5C003CAAB8 /* WXWebSocketDefaultImpl.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 775BEE901C1E8ECC008D1629 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 775BEE991C1E8ECC008D1629 /* WeexDemoTests.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 84361D291CA10F8E00F43825 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 847CAF2D1F39BBB900551725 /* WXScannerHistoryVC.m in Sources */,
- 847CAF2C1F39BB8A00551725 /* WXATLoggerPlugin.m in Sources */,
- 84361D2F1CA10F8E00F43825 /* WXScannerVC.m in Sources */,
- 84361D331CA10F8E00F43825 /* WXDemoViewController.m in Sources */,
- 84361D371CA10F8E00F43825 /* UIViewController+WXDemoNaviBar.m in Sources */,
- DCA812FA1D0401500029BF62 /* WXEventModule.m in Sources */,
- 846FC8DA1E1B853100949E7D /* WXSyncTestModule.m in Sources */,
- 84361D381CA10F8E00F43825 /* AppDelegate.m in Sources */,
- 847CAF2E1F39BBFB00551725 /* WXConfigCenterDefaultImpl.m in Sources */,
- 846FC8DB1E1B853600949E7D /* WXATViewHierarchyPlugin.m in Sources */,
- 84361D3B1CA10F8E00F43825 /* main.m in Sources */,
- DCA812FB1D0401570029BF62 /* WXImgLoaderDefaultImpl.m in Sources */,
- 847CAF2B1F39BB6B00551725 /* UIView+UIThreadCheck.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
- 775BEE961C1E8ECC008D1629 /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = 775BEE7A1C1E8ECC008D1629 /* WeexDemo */;
- targetProxy = 775BEE951C1E8ECC008D1629 /* PBXContainerItemProxy */;
- };
-/* End PBXTargetDependency section */
-
-/* Begin XCBuildConfiguration section */
- 775BEEA61C1E8ECC008D1629 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- CODE_SIGN_IDENTITY = "iPhone Developer";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = dwarf;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- ENABLE_TESTABILITY = YES;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_GENERATE_TEST_COVERAGE_FILES = YES;
- GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "DEBUG=1",
- "$(inherited)",
- );
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
- MTL_ENABLE_DEBUG_INFO = YES;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- };
- name = Debug;
- };
- 775BEEA71C1E8ECC008D1629 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- CODE_SIGN_IDENTITY = "iPhone Distribution";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
- COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
- MTL_ENABLE_DEBUG_INFO = NO;
- SDKROOT = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- VALIDATE_PRODUCT = YES;
- };
- name = Release;
- };
- 775BEEA91C1E8ECC008D1629 /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 5AF8846546DAC65CAC038806 /* Pods-WeexDemo.debug.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
- CODE_SIGN_IDENTITY = "iPhone Developer";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- DEVELOPMENT_TEAM = "";
- ENABLE_BITCODE = NO;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/WeexDemo",
- "$(PROJECT_DIR)",
- );
- GCC_TREAT_WARNINGS_AS_ERRORS = NO;
- INFOPLIST_FILE = WeexDemo/Info.plist;
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
- OTHER_LDFLAGS = (
- "$(inherited)",
- "-licucore",
- );
- PRODUCT_BUNDLE_IDENTIFIER = com.taobao.WeexPlayground;
- PRODUCT_NAME = "$(TARGET_NAME)";
- PROVISIONING_PROFILE = "";
- TARGETED_DEVICE_FAMILY = 1;
- };
- name = Debug;
- };
- 775BEEAA1C1E8ECC008D1629 /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 9420131417A731ED089B0814 /* Pods-WeexDemo.release.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
- CODE_SIGN_IDENTITY = "iPhone Distribution";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
- DEVELOPMENT_TEAM = "";
- ENABLE_BITCODE = NO;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/WeexDemo",
- "$(PROJECT_DIR)",
- );
- GCC_TREAT_WARNINGS_AS_ERRORS = NO;
- INFOPLIST_FILE = WeexDemo/Info.plist;
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
- OTHER_LDFLAGS = (
- "$(inherited)",
- "-licucore",
- );
- PRODUCT_BUNDLE_IDENTIFIER = com.taobao.WeexPlayground;
- PRODUCT_NAME = "$(TARGET_NAME)";
- PROVISIONING_PROFILE = "";
- TARGETED_DEVICE_FAMILY = 1;
- };
- name = Release;
- };
- 775BEEAC1C1E8ECC008D1629 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- BUNDLE_LOADER = "$(TEST_HOST)";
- INFOPLIST_FILE = WeexDemoTests/Info.plist;
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
- PRODUCT_BUNDLE_IDENTIFIER = com.taobao.WeexDemoTests;
- PRODUCT_NAME = "$(TARGET_NAME)";
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/WeexDemo.app/WeexDemo";
- };
- name = Debug;
- };
- 775BEEAD1C1E8ECC008D1629 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- BUNDLE_LOADER = "$(TEST_HOST)";
- INFOPLIST_FILE = WeexDemoTests/Info.plist;
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
- PRODUCT_BUNDLE_IDENTIFIER = com.taobao.WeexDemoTests;
- PRODUCT_NAME = "$(TARGET_NAME)";
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/WeexDemo.app/WeexDemo";
- };
- name = Release;
- };
- 84361D721CA10F8E00F43825 /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 2278B1B1FCE894EDAF9F0171 /* Pods-WeexUITestDemo.debug.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CODE_SIGN_IDENTITY = "iPhone Developer";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- ENABLE_BITCODE = NO;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/WeexDemo",
- "$(PROJECT_DIR)",
- );
- GCC_GENERATE_TEST_COVERAGE_FILES = YES;
- GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "$(inherited)",
- "COCOAPODS=1",
- "UITEST=1",
- );
- GCC_TREAT_WARNINGS_AS_ERRORS = NO;
- INFOPLIST_FILE = "WeexUITestDemo-Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
- MODULE_NAME = NO;
- OTHER_LDFLAGS = (
- "$(inherited)",
- "-licucore",
- );
- PRODUCT_BUNDLE_IDENTIFIER = com.taobao.WeexDemo.uitest;
- PRODUCT_NAME = "$(TARGET_NAME)";
- PROVISIONING_PROFILE = "";
- };
- name = Debug;
- };
- 84361D741CA10F8E00F43825 /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 1888E2C5769382461DEDC97D /* Pods-WeexUITestDemo.release.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CODE_SIGN_IDENTITY = "iPhone Developer";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- ENABLE_BITCODE = NO;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/WeexDemo",
- "$(PROJECT_DIR)",
- );
- GCC_GENERATE_TEST_COVERAGE_FILES = YES;
- GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
- GCC_TREAT_WARNINGS_AS_ERRORS = NO;
- INFOPLIST_FILE = "WeexUITestDemo-Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
- MODULE_NAME = NO;
- OTHER_LDFLAGS = (
- "$(inherited)",
- "-licucore",
- );
- PRODUCT_BUNDLE_IDENTIFIER = com.taobao.WeexDemo.uitest;
- PRODUCT_NAME = "$(TARGET_NAME)";
- PROVISIONING_PROFILE = "";
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 775BEE761C1E8ECC008D1629 /* Build configuration list for PBXProject "WeexDemo" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 775BEEA61C1E8ECC008D1629 /* Debug */,
- 775BEEA71C1E8ECC008D1629 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Debug;
- };
- 775BEEA81C1E8ECC008D1629 /* Build configuration list for PBXNativeTarget "WeexDemo" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 775BEEA91C1E8ECC008D1629 /* Debug */,
- 775BEEAA1C1E8ECC008D1629 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Debug;
- };
- 775BEEAB1C1E8ECC008D1629 /* Build configuration list for PBXNativeTarget "WeexDemoTests" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 775BEEAC1C1E8ECC008D1629 /* Debug */,
- 775BEEAD1C1E8ECC008D1629 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Debug;
- };
- 84361D711CA10F8E00F43825 /* Build configuration list for PBXNativeTarget "WeexUITestDemo" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 84361D721CA10F8E00F43825 /* Debug */,
- 84361D741CA10F8E00F43825 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Debug;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 775BEE731C1E8ECC008D1629 /* Project object */;
-}
diff --git a/ios/playground/WeexDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/playground/WeexDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 919434a..0000000
--- a/ios/playground/WeexDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Workspace
- version = "1.0">
- <FileRef
- location = "self:">
- </FileRef>
-</Workspace>
diff --git a/ios/playground/WeexDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/playground/WeexDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d9810..0000000
--- a/ios/playground/WeexDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>IDEDidComputeMac32BitWarning</key>
- <true/>
-</dict>
-</plist>
diff --git a/ios/playground/WeexDemo.xcodeproj/xcshareddata/xcschemes/WeexDemo.xcscheme b/ios/playground/WeexDemo.xcodeproj/xcshareddata/xcschemes/WeexDemo.xcscheme
deleted file mode 100644
index a33c31d..0000000
--- a/ios/playground/WeexDemo.xcodeproj/xcshareddata/xcschemes/WeexDemo.xcscheme
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Scheme
- LastUpgradeVersion = "0710"
- version = "1.3">
- <BuildAction
- parallelizeBuildables = "YES"
- buildImplicitDependencies = "YES">
- <BuildActionEntries>
- <BuildActionEntry
- buildForTesting = "YES"
- buildForRunning = "YES"
- buildForProfiling = "YES"
- buildForArchiving = "YES"
- buildForAnalyzing = "YES">
- <BuildableReference
- BuildableIdentifier = "primary"
- BlueprintIdentifier = "775BEE7A1C1E8ECC008D1629"
- BuildableName = "WeexDemo.app"
- BlueprintName = "WeexDemo"
- ReferencedContainer = "container:WeexDemo.xcodeproj">
- </BuildableReference>
- </BuildActionEntry>
- </BuildActionEntries>
- </BuildAction>
- <TestAction
- buildConfiguration = "Debug"
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
- shouldUseLaunchSchemeArgsEnv = "YES"
- codeCoverageEnabled = "YES">
- <Testables>
- <TestableReference
- skipped = "NO">
- <BuildableReference
- BuildableIdentifier = "primary"
- BlueprintIdentifier = "775BEE931C1E8ECC008D1629"
- BuildableName = "WeexDemoTests.xctest"
- BlueprintName = "WeexDemoTests"
- ReferencedContainer = "container:WeexDemo.xcodeproj">
- </BuildableReference>
- </TestableReference>
- <TestableReference
- skipped = "NO">
- <BuildableReference
- BuildableIdentifier = "primary"
- BlueprintIdentifier = "775BEE9E1C1E8ECC008D1629"
- BuildableName = "WeexDemoUITests.xctest"
- BlueprintName = "WeexDemoUITests"
- ReferencedContainer = "container:WeexDemo.xcodeproj">
- </BuildableReference>
- </TestableReference>
- </Testables>
- <MacroExpansion>
- <BuildableReference
- BuildableIdentifier = "primary"
- BlueprintIdentifier = "775BEE7A1C1E8ECC008D1629"
- BuildableName = "WeexDemo.app"
- BlueprintName = "WeexDemo"
- ReferencedContainer = "container:WeexDemo.xcodeproj">
- </BuildableReference>
- </MacroExpansion>
- <AdditionalOptions>
- </AdditionalOptions>
- </TestAction>
- <LaunchAction
- buildConfiguration = "Debug"
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
- launchStyle = "0"
- useCustomWorkingDirectory = "NO"
- ignoresPersistentStateOnLaunch = "NO"
- debugDocumentVersioning = "YES"
- debugServiceExtension = "internal"
- allowLocationSimulation = "YES">
- <BuildableProductRunnable
- runnableDebuggingMode = "0">
- <BuildableReference
- BuildableIdentifier = "primary"
- BlueprintIdentifier = "775BEE7A1C1E8ECC008D1629"
- BuildableName = "WeexDemo.app"
- BlueprintName = "WeexDemo"
- ReferencedContainer = "container:WeexDemo.xcodeproj">
- </BuildableReference>
- </BuildableProductRunnable>
- <EnvironmentVariables>
- <EnvironmentVariable
- key = "OS_ACTIVITY_MODE"
- value = "disable"
- isEnabled = "NO">
- </EnvironmentVariable>
- <EnvironmentVariable
- key = "JSC_logGC"
- value = "1"
- isEnabled = "NO">
- </EnvironmentVariable>
- </EnvironmentVariables>
- <AdditionalOptions>
- </AdditionalOptions>
- </LaunchAction>
- <ProfileAction
- buildConfiguration = "Release"
- shouldUseLaunchSchemeArgsEnv = "YES"
- savedToolIdentifier = ""
- useCustomWorkingDirectory = "NO"
- debugDocumentVersioning = "YES">
- <BuildableProductRunnable
- runnableDebuggingMode = "0">
- <BuildableReference
- BuildableIdentifier = "primary"
- BlueprintIdentifier = "775BEE7A1C1E8ECC008D1629"
- BuildableName = "WeexDemo.app"
- BlueprintName = "WeexDemo"
- ReferencedContainer = "container:WeexDemo.xcodeproj">
- </BuildableReference>
- </BuildableProductRunnable>
- </ProfileAction>
- <AnalyzeAction
- buildConfiguration = "Debug">
- </AnalyzeAction>
- <ArchiveAction
- buildConfiguration = "Release"
- revealArchiveInOrganizer = "YES">
- </ArchiveAction>
-</Scheme>
diff --git a/ios/playground/WeexDemo.xcodeproj/xcshareddata/xcschemes/WeexUITestDemo.xcscheme b/ios/playground/WeexDemo.xcodeproj/xcshareddata/xcschemes/WeexUITestDemo.xcscheme
deleted file mode 100644
index 6a68091..0000000
--- a/ios/playground/WeexDemo.xcodeproj/xcshareddata/xcschemes/WeexUITestDemo.xcscheme
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Scheme
- LastUpgradeVersion = "0720"
- version = "1.3">
- <BuildAction
- parallelizeBuildables = "YES"
- buildImplicitDependencies = "YES">
- <BuildActionEntries>
- <BuildActionEntry
- buildForTesting = "YES"
- buildForRunning = "YES"
- buildForProfiling = "YES"
- buildForArchiving = "YES"
- buildForAnalyzing = "YES">
- <BuildableReference
- BuildableIdentifier = "primary"
- BlueprintIdentifier = "84361D261CA10F8E00F43825"
- BuildableName = "WeexUITestDemo.app"
- BlueprintName = "WeexUITestDemo"
- ReferencedContainer = "container:WeexDemo.xcodeproj">
- </BuildableReference>
- </BuildActionEntry>
- </BuildActionEntries>
- </BuildAction>
- <TestAction
- buildConfiguration = "Debug"
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
- shouldUseLaunchSchemeArgsEnv = "YES">
- <Testables>
- </Testables>
- <MacroExpansion>
- <BuildableReference
- BuildableIdentifier = "primary"
- BlueprintIdentifier = "84361D261CA10F8E00F43825"
- BuildableName = "WeexUITestDemo.app"
- BlueprintName = "WeexUITestDemo"
- ReferencedContainer = "container:WeexDemo.xcodeproj">
- </BuildableReference>
- </MacroExpansion>
- <AdditionalOptions>
- </AdditionalOptions>
- </TestAction>
- <LaunchAction
- buildConfiguration = "Debug"
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
- launchStyle = "0"
- useCustomWorkingDirectory = "NO"
- ignoresPersistentStateOnLaunch = "NO"
- debugDocumentVersioning = "YES"
- debugServiceExtension = "internal"
- allowLocationSimulation = "YES">
- <BuildableProductRunnable
- runnableDebuggingMode = "0">
- <BuildableReference
- BuildableIdentifier = "primary"
- BlueprintIdentifier = "84361D261CA10F8E00F43825"
- BuildableName = "WeexUITestDemo.app"
- BlueprintName = "WeexUITestDemo"
- ReferencedContainer = "container:WeexDemo.xcodeproj">
- </BuildableReference>
- </BuildableProductRunnable>
- <AdditionalOptions>
- </AdditionalOptions>
- </LaunchAction>
- <ProfileAction
- buildConfiguration = "Release"
- shouldUseLaunchSchemeArgsEnv = "YES"
- savedToolIdentifier = ""
- useCustomWorkingDirectory = "NO"
- debugDocumentVersioning = "YES">
- <BuildableProductRunnable
- runnableDebuggingMode = "0">
- <BuildableReference
- BuildableIdentifier = "primary"
- BlueprintIdentifier = "84361D261CA10F8E00F43825"
- BuildableName = "WeexUITestDemo.app"
- BlueprintName = "WeexUITestDemo"
- ReferencedContainer = "container:WeexDemo.xcodeproj">
- </BuildableReference>
- </BuildableProductRunnable>
- </ProfileAction>
- <AnalyzeAction
- buildConfiguration = "Debug">
- </AnalyzeAction>
- <ArchiveAction
- buildConfiguration = "Release"
- revealArchiveInOrganizer = "YES">
- </ArchiveAction>
-</Scheme>
diff --git a/ios/playground/WeexDemo.xcworkspace/contents.xcworkspacedata b/ios/playground/WeexDemo.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 599b710..0000000
--- a/ios/playground/WeexDemo.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Workspace
- version = "1.0">
- <FileRef
- location = "group:WeexDemo.xcodeproj">
- </FileRef>
- <FileRef
- location = "group:Pods/Pods.xcodeproj">
- </FileRef>
-</Workspace>
diff --git a/ios/playground/WeexDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/playground/WeexDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d9810..0000000
--- a/ios/playground/WeexDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>IDEDidComputeMac32BitWarning</key>
- <true/>
-</dict>
-</plist>
diff --git a/ios/playground/WeexDemo/AppDelegate.h b/ios/playground/WeexDemo/AppDelegate.h
deleted file mode 100644
index 14c0bef..0000000
--- a/ios/playground/WeexDemo/AppDelegate.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <UIKit/UIKit.h>
-
-
-@interface AppDelegate : UIResponder <UIApplicationDelegate,UIAlertViewDelegate>
-
-@property (strong, nonatomic) UIWindow *window;
-@property (strong, nonatomic) NSString *latestVer;
-@property (assign, nonatomic) BOOL allowRotation;
-
-@end
diff --git a/ios/playground/WeexDemo/AppDelegate.m b/ios/playground/WeexDemo/AppDelegate.m
deleted file mode 100644
index 64aba4e..0000000
--- a/ios/playground/WeexDemo/AppDelegate.m
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import "AppDelegate.h"
-#import "WXDemoViewController.h"
-#import "UIViewController+WXDemoNaviBar.h"
-#import "WXEventModule.h"
-#import "WXImgLoaderDefaultImpl.h"
-#import "DemoDefine.h"
-#import "WXScannerVC.h"
-#import "WXScannerHistoryVC.h"
-#import "WXSyncTestModule.h"
-#import "WXExtModule.h"
-#import "UIView+UIThreadCheck.h"
-#import <WeexSDK/WeexSDK.h>
-#import <AVFoundation/AVFoundation.h>
-#import <ATSDK/ATManager.h>
-#import "WXConfigCenterProtocol.h"
-#import "WXConfigCenterDefaultImpl.h"
-#import "WXNavigationHandlerImpl.h"
-//#import "WXAnalyzerCenter.h"
-#import "WXApmGeneratorImpl.h"
-#import "WXWebSocketDefaultImpl.h"
-#import <WeexPluginLoader/WeexPluginLoader.h>
-
-#ifdef DEBUG
-#import "DebugAnalyzer.h"
-#endif
-
-@interface AppDelegate ()
-@end
-
-@implementation AppDelegate
-
-#pragma mark
-#pragma mark application
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
-{
- self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
- self.window.backgroundColor = [UIColor whiteColor];
-
- [self initWeexSDK];
-
- self.window.rootViewController = [[WXRootViewController alloc] initWithRootViewController:[self demoController]];
- [self.window makeKeyAndVisible];
-
- [self startSplashScreen];
-
-#if DEBUG
- // check if there are any UI changes on main thread.
- [UIView wx_checkUIThread];
-#endif
-
- return YES;
-}
-
-- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
-{
- if (_allowRotation) {
- return UIInterfaceOrientationMaskAllButUpsideDown;
- }
- else {
- return UIInterfaceOrientationMaskPortrait;
- }
-}
-
--(void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler
-{
- if ([shortcutItem.type isEqualToString:QRSCAN]) {
- WXScannerVC * scanViewController = [[WXScannerVC alloc] init];
- [(WXRootViewController*)self.window.rootViewController pushViewController:scanViewController animated:YES];
- }
- if ([shortcutItem.type isEqualToString:QRSCAN_HISTORY]) {
- WXScannerHistoryVC *scannerHistoryVC = [WXScannerHistoryVC new];
- [(WXRootViewController*)self.window.rootViewController pushViewController:scannerHistoryVC animated:YES];
- }
-}
-
-- (void)applicationDidEnterBackground:(UIApplication *)application
-{
-
-#ifdef UITEST
-#if !TARGET_IPHONE_SIMULATOR
- NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- NSString *documentsDirectory = [paths objectAtIndex:0];
- setenv("GCOV_PREFIX", [documentsDirectory cStringUsingEncoding:NSUTF8StringEncoding], 1);
- setenv("GCOV_PREFIX_STRIP", "6", 1);
-#endif
- extern void __gcov_flush(void);
- __gcov_flush();
-#endif
-}
-
-- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
-{
- NSString *newUrlStr = url.absoluteString;
- if([url.scheme isEqualToString:@"wxpage"]) {
- newUrlStr = [newUrlStr stringByReplacingOccurrencesOfString:@"wxpage://" withString:@"http://"];
- }
- UIViewController * viewController = [self demoController];
- ((WXDemoViewController*)viewController).url = [NSURL URLWithString:newUrlStr];
- [(WXRootViewController*)self.window.rootViewController pushViewController:viewController animated:YES];
- return YES;
-}
-
-#pragma mark weex
-- (void)initWeexSDK
-{
- [WXAppConfiguration setAppGroup:@"AliApp"];
- [WXAppConfiguration setAppName:@"WeexDemo"];
- [WXAppConfiguration setExternalUserAgent:@"ExternalUA"];
-
- [WXSDKEngine initSDKEnvironment];
-
- [WXSDKEngine registerHandler:[WXImgLoaderDefaultImpl new] withProtocol:@protocol(WXImgLoaderProtocol)];
- [WXSDKEngine registerHandler:[WXEventModule new] withProtocol:@protocol(WXEventModuleProtocol)];
- [WXSDKEngine registerHandler:[WXConfigCenterDefaultImpl new] withProtocol:@protocol(WXConfigCenterProtocol)];
- [WXSDKEngine registerHandler:[WXNavigationHandlerImpl new] withProtocol:@protocol(WXNavigationProtocol)];
- [WXSDKEngine registerHandler:[WXApmGeneratorImpl new] withProtocol:@protocol(WXApmGeneratorProtocol)];
- [WXSDKEngine registerHandler:[WXWebSocketDefaultImpl new] withProtocol:@protocol(WXWebSocketHandler)];
-
- [WXSDKEngine registerComponent:@"select" withClass:NSClassFromString(@"WXSelectComponent")];
- [WXSDKEngine registerModule:@"event" withClass:[WXEventModule class]];
- [WXSDKEngine registerModule:@"syncTest" withClass:[WXSyncTestModule class]];
- [WXSDKEngine registerModule:@"titleBar" withClass:NSClassFromString(@"WXTitleBarModule")];
- [WXSDKEngine registerExtendCallNative:@"test" withClass:NSClassFromString(@"WXExtendCallNativeTest")];
- [WXSDKEngine registerModule:@"ext" withClass:[WXExtModule class]];
- [WPRegister registerPlugins];
-#ifdef DEBUG
- [WXAnalyzerCenter addWxAnalyzer:[DebugAnalyzer new]];
-#endif
-
-#if !(TARGET_IPHONE_SIMULATOR)
- [self checkUpdate];
-#endif
-
-#ifdef DEBUG
- [self atAddPlugin];
- [WXDebugTool setDebug:YES];
- [WXLog setLogLevel:WXLogLevelLog];
-
- #ifndef UITEST
- [[ATManager shareInstance] show];
- #endif
-#else
- [WXDebugTool setDebug:NO];
- [WXLog setLogLevel:WXLogLevelError];
-#endif
-}
-
-- (UIViewController *)demoController
-{
- UIViewController *demo = [[WXDemoViewController alloc] init];
- ((WXDemoViewController *)demo).url = [NSURL URLWithString:BUNDLE_URL];
- return demo;
-}
-
-#pragma mark
-#pragma mark animation when startup
-
-- (void)startSplashScreen
-{
- UIView* splashView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
- splashView.backgroundColor = WEEX_COLOR;
-
- UIImageView *iconImageView = [UIImageView new];
- UIImage *icon = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"weex-icon" ofType:@"png"]];
- if ([icon respondsToSelector:@selector(imageWithRenderingMode:)]) {
- iconImageView.image = [icon imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
- iconImageView.tintColor = [UIColor whiteColor];
- } else {
- iconImageView.image = icon;
- }
- iconImageView.frame = CGRectMake(0, 0, 320, 320);
- iconImageView.contentMode = UIViewContentModeScaleAspectFit;
- iconImageView.center = splashView.center;
- [splashView addSubview:iconImageView];
-
- [self.window addSubview:splashView];
-
- float animationDuration = 1.4;
- CGFloat shrinkDuration = animationDuration * 0.3;
- CGFloat growDuration = animationDuration * 0.7;
-
- if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
- [UIView animateWithDuration:shrinkDuration delay:1.0 usingSpringWithDamping:0.7f initialSpringVelocity:10 options:UIViewAnimationOptionCurveEaseInOut animations:^{
- CGAffineTransform scaleTransform = CGAffineTransformMakeScale(0.75, 0.75);
- iconImageView.transform = scaleTransform;
- } completion:^(BOOL finished) {
- [UIView animateWithDuration:growDuration animations:^{
- CGAffineTransform scaleTransform = CGAffineTransformMakeScale(20, 20);
- iconImageView.transform = scaleTransform;
- splashView.alpha = 0;
- } completion:^(BOOL finished) {
- [splashView removeFromSuperview];
- }];
- }];
- } else {
- [UIView animateWithDuration:shrinkDuration delay:1.0 options:0 animations:^{
- CGAffineTransform scaleTransform = CGAffineTransformMakeScale(0.75, 0.75);
- iconImageView.transform = scaleTransform;
- } completion:^(BOOL finished) {
- [UIView animateWithDuration:growDuration animations:^{
- CGAffineTransform scaleTransform = CGAffineTransformMakeScale(20, 20);
- iconImageView.transform = scaleTransform;
- splashView.alpha = 0;
- } completion:^(BOOL finished) {
- [splashView removeFromSuperview];
- }];
- }];
- }
-}
-
-#pragma mark
-
-- (void)atAddPlugin {
-#if DEBUG
- [[ATManager shareInstance] addPluginWithId:@"weex" andName:@"weex" andIconName:@"../weex" andEntry:@"" andArgs:@[@""]];
- [[ATManager shareInstance] addSubPluginWithParentId:@"weex" andSubId:@"logger" andName:@"logger" andIconName:@"log" andEntry:@"WXATLoggerPlugin" andArgs:@[@""]];
-// [[ATManager shareInstance] addSubPluginWithParentId:@"weex" andSubId:@"viewHierarchy" andName:@"hierarchy" andIconName:@"log" andEntry:@"WXATViewHierarchyPlugin" andArgs:@[@""]];
- [[ATManager shareInstance] addSubPluginWithParentId:@"weex" andSubId:@"test2" andName:@"test" andIconName:@"at_arr_refresh" andEntry:@"" andArgs:@[]];
- [[ATManager shareInstance] addSubPluginWithParentId:@"weex" andSubId:@"test3" andName:@"test" andIconName:@"at_arr_refresh" andEntry:@"" andArgs:@[]];
-#endif
-}
-
-- (void)checkUpdate {
- __weak typeof(self) weakSelf = self;
- dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
- NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];
- NSString *currentVersion = [infoDic objectForKey:@"CFBundleShortVersionString"];
- NSString *URL = @"http://itunes.apple.com/lookup?id=1130862662";
- NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
- [request setURL:[NSURL URLWithString:URL]];
- [request setHTTPMethod:@"POST"];
-
- NSHTTPURLResponse *urlResponse = nil;
- NSError *error = nil;
- NSData *recervedData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
- NSString *results = [[NSString alloc] initWithBytes:[recervedData bytes] length:[recervedData length] encoding:NSUTF8StringEncoding];
-
- NSDictionary *dic = [WXUtility objectFromJSON:results];
- NSArray *infoArray = [dic objectForKey:@"results"];
-
- if ([infoArray count]) {
- NSDictionary *releaseInfo = [infoArray objectAtIndex:0];
- weakSelf.latestVer = [releaseInfo objectForKey:@"version"];
- if ([weakSelf.latestVer floatValue] > [currentVersion floatValue]) {
- if (![[NSUserDefaults standardUserDefaults] boolForKey: weakSelf.latestVer]) {
- [[NSUserDefaults standardUserDefaults] setBool:FALSE forKey:weakSelf.latestVer];
- dispatch_async(dispatch_get_main_queue(), ^{
- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"New Version" message:@"Will update to a new version" delegate:self cancelButtonTitle:@"cancel" otherButtonTitles:@"update", nil];
- [alert show];
- });
- }
- }
- }
- });
-}
-
-- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
- switch (buttonIndex) {
- case 0:
- [[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:self.latestVer];
- break;
- case 1:
- [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"itms-apps://itunes.apple.com/cn/app/weex-playground/id1130862662?mt=8"]];
- default:
- break;
- }
- [alertView dismissWithClickedButtonIndex:buttonIndex animated:YES];
-}
-
-@end
diff --git a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/AppStoreIcon1024.png b/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/AppStoreIcon1024.png
deleted file mode 100644
index 435f57b..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/AppStoreIcon1024.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100644
index 21cf59d..0000000
--- a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ /dev/null
@@ -1,112 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "iphone",
- "size" : "20x20",
- "scale" : "2x"
- },
- {
- "idiom" : "iphone",
- "size" : "20x20",
- "scale" : "3x"
- },
- {
- "size" : "29x29",
- "idiom" : "iphone",
- "filename" : "Icon-29@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "29x29",
- "idiom" : "iphone",
- "filename" : "Icon-29@3x.png",
- "scale" : "3x"
- },
- {
- "size" : "40x40",
- "idiom" : "iphone",
- "filename" : "Icon-40@2x-1.png",
- "scale" : "2x"
- },
- {
- "size" : "40x40",
- "idiom" : "iphone",
- "filename" : "Icon-40@3x.png",
- "scale" : "3x"
- },
- {
- "size" : "60x60",
- "idiom" : "iphone",
- "filename" : "Icon-60@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "60x60",
- "idiom" : "iphone",
- "filename" : "Icon-60@3x.png",
- "scale" : "3x"
- },
- {
- "idiom" : "ipad",
- "size" : "20x20",
- "scale" : "1x"
- },
- {
- "idiom" : "ipad",
- "size" : "20x20",
- "scale" : "2x"
- },
- {
- "size" : "29x29",
- "idiom" : "ipad",
- "filename" : "Icon-29.png",
- "scale" : "1x"
- },
- {
- "size" : "29x29",
- "idiom" : "ipad",
- "filename" : "Icon-29@2x-1.png",
- "scale" : "2x"
- },
- {
- "size" : "40x40",
- "idiom" : "ipad",
- "filename" : "Icon-40.png",
- "scale" : "1x"
- },
- {
- "size" : "40x40",
- "idiom" : "ipad",
- "filename" : "Icon-40@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "76x76",
- "idiom" : "ipad",
- "filename" : "Icon-76.png",
- "scale" : "1x"
- },
- {
- "size" : "76x76",
- "idiom" : "ipad",
- "filename" : "Icon-76@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "83.5x83.5",
- "idiom" : "ipad",
- "filename" : "Icon-83.5@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "1024x1024",
- "idiom" : "ios-marketing",
- "filename" : "AppStoreIcon1024.png",
- "scale" : "1x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-29.png b/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-29.png
deleted file mode 100644
index fcadf69..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-29.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-29@2x-1.png b/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-29@2x-1.png
deleted file mode 100644
index 594350e..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-29@2x-1.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png b/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png
deleted file mode 100644
index 594350e..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png b/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png
deleted file mode 100644
index 6b6635c..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-40.png b/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-40.png
deleted file mode 100644
index 17ef490..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-40.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-40@2x-1.png b/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-40@2x-1.png
deleted file mode 100644
index f3641e9..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-40@2x-1.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png b/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png
deleted file mode 100644
index f3641e9..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-40@3x.png b/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-40@3x.png
deleted file mode 100644
index 2fa64a0..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-40@3x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png b/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png
deleted file mode 100644
index 2fa64a0..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png b/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png
deleted file mode 100644
index 6160662..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-76.png b/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-76.png
deleted file mode 100644
index 85ede63..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-76.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png b/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png
deleted file mode 100644
index c513d88..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png b/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png
deleted file mode 100644
index 7d77683..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/Contents.json b/ios/playground/WeexDemo/Assets.xcassets/Contents.json
deleted file mode 100644
index da4a164..0000000
--- a/ios/playground/WeexDemo/Assets.xcassets/Contents.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Contents.json b/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Contents.json
deleted file mode 100644
index b4bc73c..0000000
--- a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Contents.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "images" : [
- {
- "extent" : "full-screen",
- "idiom" : "iphone",
- "subtype" : "2688h",
- "filename" : "iPhoneXMax@3x.png",
- "minimum-system-version" : "12.0",
- "orientation" : "portrait",
- "scale" : "3x"
- },
- {
- "extent" : "full-screen",
- "idiom" : "iphone",
- "subtype" : "1792h",
- "filename" : "iPhoneXR@2x.png",
- "minimum-system-version" : "12.0",
- "orientation" : "portrait",
- "scale" : "2x"
- },
- {
- "extent" : "full-screen",
- "idiom" : "iphone",
- "subtype" : "2436h",
- "filename" : "iPhoneX@3x.png",
- "minimum-system-version" : "11.0",
- "orientation" : "portrait",
- "scale" : "3x"
- },
- {
- "extent" : "full-screen",
- "idiom" : "iphone",
- "subtype" : "2436h",
- "filename" : "iPhoneX-landscape.png",
- "minimum-system-version" : "11.0",
- "orientation" : "landscape",
- "scale" : "3x"
- },
- {
- "extent" : "full-screen",
- "idiom" : "iphone",
- "subtype" : "736h",
- "filename" : "Retinal HD 5.5.png",
- "minimum-system-version" : "8.0",
- "orientation" : "portrait",
- "scale" : "3x"
- },
- {
- "extent" : "full-screen",
- "idiom" : "iphone",
- "subtype" : "736h",
- "filename" : "iPhone5.5-landscape.png",
- "minimum-system-version" : "8.0",
- "orientation" : "landscape",
- "scale" : "3x"
- },
- {
- "extent" : "full-screen",
- "idiom" : "iphone",
- "subtype" : "667h",
- "filename" : "Retinal HD 4.7.png",
- "minimum-system-version" : "8.0",
- "orientation" : "portrait",
- "scale" : "2x"
- },
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "filename" : "Default@2x.png",
- "extent" : "full-screen",
- "minimum-system-version" : "7.0",
- "scale" : "2x"
- },
- {
- "extent" : "full-screen",
- "idiom" : "iphone",
- "subtype" : "retina4",
- "filename" : "Default-568h@2x.png",
- "minimum-system-version" : "7.0",
- "orientation" : "portrait",
- "scale" : "2x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png b/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png
deleted file mode 100644
index 7e013e4..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Default@2x.png b/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Default@2x.png
deleted file mode 100644
index 948f7a3..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Default@2x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Retinal HD 4.7.png b/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Retinal HD 4.7.png
deleted file mode 100644
index 95b95ea..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Retinal HD 4.7.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Retinal HD 5.5.png b/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Retinal HD 5.5.png
deleted file mode 100644
index 27dd969..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Retinal HD 5.5.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/iPhone5.5-landscape.png b/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/iPhone5.5-landscape.png
deleted file mode 100644
index 6eb5283..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/iPhone5.5-landscape.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/iPhoneX-landscape.png b/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/iPhoneX-landscape.png
deleted file mode 100644
index 2b65d7c..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/iPhoneX-landscape.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/iPhoneX@3x.png b/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/iPhoneX@3x.png
deleted file mode 100644
index ddda19e..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/iPhoneX@3x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/iPhoneXMax@3x.png b/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/iPhoneXMax@3x.png
deleted file mode 100644
index 64c3772..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/iPhoneXMax@3x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/iPhoneXR@2x.png b/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/iPhoneXR@2x.png
deleted file mode 100644
index 9ecb99e..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/iPhoneXR@2x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/back.imageset/Contents.json b/ios/playground/WeexDemo/Assets.xcassets/back.imageset/Contents.json
deleted file mode 100644
index 3bad3d0..0000000
--- a/ios/playground/WeexDemo/Assets.xcassets/back.imageset/Contents.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "universal",
- "filename" : "back.png",
- "scale" : "1x"
- },
- {
- "idiom" : "universal",
- "filename" : "back@2x.png",
- "scale" : "2x"
- },
- {
- "idiom" : "universal",
- "filename" : "back@3x.png",
- "scale" : "3x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/ios/playground/WeexDemo/Assets.xcassets/back.imageset/back.png b/ios/playground/WeexDemo/Assets.xcassets/back.imageset/back.png
deleted file mode 100644
index 1f3e073..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/back.imageset/back.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/back.imageset/back@2x.png b/ios/playground/WeexDemo/Assets.xcassets/back.imageset/back@2x.png
deleted file mode 100644
index 76d0bf8..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/back.imageset/back@2x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/back.imageset/back@3x.png b/ios/playground/WeexDemo/Assets.xcassets/back.imageset/back@3x.png
deleted file mode 100644
index 8180558..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/back.imageset/back@3x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/Contents.json b/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/Contents.json
deleted file mode 100644
index 1231572..0000000
--- a/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/Contents.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "universal",
- "filename" : "delete.png",
- "scale" : "1x"
- },
- {
- "idiom" : "universal",
- "filename" : "delete@2x.png",
- "scale" : "2x"
- },
- {
- "idiom" : "universal",
- "filename" : "delete@3x.png",
- "scale" : "3x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete.png b/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete.png
deleted file mode 100644
index d7cc20a..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete@2x.png b/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete@2x.png
deleted file mode 100644
index 63aa9cb..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete@2x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete@3x.png b/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete@3x.png
deleted file mode 100644
index 5963f9c..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete@3x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/reload.imageset/Contents.json b/ios/playground/WeexDemo/Assets.xcassets/reload.imageset/Contents.json
deleted file mode 100644
index e2cd5af..0000000
--- a/ios/playground/WeexDemo/Assets.xcassets/reload.imageset/Contents.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "universal",
- "filename" : "reload.png",
- "scale" : "1x"
- },
- {
- "idiom" : "universal",
- "filename" : "reload@2x.png",
- "scale" : "2x"
- },
- {
- "idiom" : "universal",
- "filename" : "reload@3x.png",
- "scale" : "3x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/ios/playground/WeexDemo/Assets.xcassets/reload.imageset/reload.png b/ios/playground/WeexDemo/Assets.xcassets/reload.imageset/reload.png
deleted file mode 100644
index 1fd4bac..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/reload.imageset/reload.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/reload.imageset/reload@2x.png b/ios/playground/WeexDemo/Assets.xcassets/reload.imageset/reload@2x.png
deleted file mode 100644
index 6e97235..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/reload.imageset/reload@2x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/reload.imageset/reload@3x.png b/ios/playground/WeexDemo/Assets.xcassets/reload.imageset/reload@3x.png
deleted file mode 100644
index ab75ee7..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/reload.imageset/reload@3x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/scan.imageset/Contents.json b/ios/playground/WeexDemo/Assets.xcassets/scan.imageset/Contents.json
deleted file mode 100644
index 798ba85..0000000
--- a/ios/playground/WeexDemo/Assets.xcassets/scan.imageset/Contents.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "universal",
- "filename" : "scan.png",
- "scale" : "1x"
- },
- {
- "idiom" : "universal",
- "filename" : "scan@2x.png",
- "scale" : "2x"
- },
- {
- "idiom" : "universal",
- "filename" : "scan@3x.png",
- "scale" : "3x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/ios/playground/WeexDemo/Assets.xcassets/scan.imageset/scan.png b/ios/playground/WeexDemo/Assets.xcassets/scan.imageset/scan.png
deleted file mode 100644
index 6183105..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/scan.imageset/scan.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/scan.imageset/scan@2x.png b/ios/playground/WeexDemo/Assets.xcassets/scan.imageset/scan@2x.png
deleted file mode 100644
index 43cf01d..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/scan.imageset/scan@2x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/scan.imageset/scan@3x.png b/ios/playground/WeexDemo/Assets.xcassets/scan.imageset/scan@3x.png
deleted file mode 100644
index 76c7e0b..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/scan.imageset/scan@3x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/Contents.json b/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/Contents.json
deleted file mode 100644
index e972e4e..0000000
--- a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/Contents.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "universal",
- "filename" : "history.png",
- "scale" : "1x"
- },
- {
- "idiom" : "universal",
- "filename" : "history@2x.png",
- "scale" : "2x"
- },
- {
- "idiom" : "universal",
- "filename" : "history@3x.png",
- "scale" : "3x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history.png b/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history.png
deleted file mode 100644
index 48aac03..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@2x.png b/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@2x.png
deleted file mode 100644
index dd94cb7..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@2x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@3x.png b/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@3x.png
deleted file mode 100644
index 2d5f2b4..0000000
Binary files a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@3x.png and /dev/null differ
diff --git a/ios/playground/WeexDemo/DemoBaseViewController.h b/ios/playground/WeexDemo/DemoBaseViewController.h
deleted file mode 100644
index 48d01e0..0000000
--- a/ios/playground/WeexDemo/DemoBaseViewController.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <UIKit/UIKit.h>
-
-@interface DemoBaseViewController : UIViewController
-
-@end
diff --git a/ios/playground/WeexDemo/DemoBaseViewController.m b/ios/playground/WeexDemo/DemoBaseViewController.m
deleted file mode 100644
index edfb8a1..0000000
--- a/ios/playground/WeexDemo/DemoBaseViewController.m
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import "DemoBaseViewController.h"
-#import "UIViewController+WXDemoNaviBar.h"
-
-@interface DemoBaseViewController ()
-
-@end
-
-@implementation DemoBaseViewController
-
-- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
-{
- return [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
-}
-
-- (void)viewDidLoad {
- [super viewDidLoad];
- // Do any additional setup after loading the view.
- [self setupNaviBar];
-}
-
-- (void)didReceiveMemoryWarning {
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
-}
-
-@end
diff --git a/ios/playground/WeexDemo/DemoDefine.h b/ios/playground/WeexDemo/DemoDefine.h
deleted file mode 100644
index 04840bb..0000000
--- a/ios/playground/WeexDemo/DemoDefine.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <Foundation/Foundation.h>
-
-#define CURRENT_IP [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"localServer-ip" ofType:@".txt"] encoding:NSUTF8StringEncoding error:nil]
-
-#if TARGET_IPHONE_SIMULATOR
- #define DEMO_HOST @"127.0.0.1"
-#else
- #define DEMO_HOST CURRENT_IP
-#endif
-
-#define DEMO_URL(path) [NSString stringWithFormat:@"http://%@:12580/%s", DEMO_HOST, #path]
-
-#define HOME_URL [NSString stringWithFormat:@"http://%@:12580/examples/build/vue/index.js", DEMO_HOST]
-
-#define BUNDLE_URL [NSString stringWithFormat:@"file://%@/bundlejs/landing.weex.js",[NSBundle mainBundle].bundlePath]
-
-#define UITEST_HOME_URL @"http://test?_wx_tpl=http://localhost:12580/test/build/TC__Home.js"
-
-#define QRSCAN @"com.taobao.WeexDemo.scan"
-#define QRSCAN_HISTORY @"com.taobao.WeexDemo.scan.history"
-#define WEEX_COLOR [UIColor colorWithRed:0.27 green:0.71 blue:0.94 alpha:1]
-#define WX_SCANNER_HISTORY @"wx_scanner_history"
diff --git a/ios/playground/WeexDemo/Images.xcassets/Brand Assets.launchimage/Contents.json b/ios/playground/WeexDemo/Images.xcassets/Brand Assets.launchimage/Contents.json
deleted file mode 100644
index e37b649..0000000
--- a/ios/playground/WeexDemo/Images.xcassets/Brand Assets.launchimage/Contents.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "images" : [
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "minimum-system-version" : "7.0",
- "scale" : "2x"
- },
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "minimum-system-version" : "7.0",
- "subtype" : "retina4",
- "scale" : "2x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/ios/playground/WeexDemo/Info.plist b/ios/playground/WeexDemo/Info.plist
deleted file mode 100644
index 49abc9a..0000000
--- a/ios/playground/WeexDemo/Info.plist
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>CFBundleDevelopmentRegion</key>
- <string>en</string>
- <key>CFBundleDisplayName</key>
- <string>WeexPlayground</string>
- <key>CFBundleExecutable</key>
- <string>$(EXECUTABLE_NAME)</string>
- <key>CFBundleIdentifier</key>
- <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundleName</key>
- <string>$(PRODUCT_NAME)</string>
- <key>CFBundlePackageType</key>
- <string>APPL</string>
- <key>CFBundleShortVersionString</key>
- <string>2.2</string>
- <key>CFBundleSignature</key>
- <string>????</string>
- <key>CFBundleURLTypes</key>
- <array>
- <dict>
- <key>CFBundleURLSchemes</key>
- <array>
- <string>wxpage</string>
- </array>
- </dict>
- </array>
- <key>CFBundleVersion</key>
- <string>3</string>
- <key>LSRequiresIPhoneOS</key>
- <true/>
- <key>NSAppTransportSecurity</key>
- <dict>
- <key>NSAllowsArbitraryLoads</key>
- <true/>
- </dict>
- <key>NSCameraUsageDescription</key>
- <string>$(PRODUCT_NAME) will access your camera,so that you can scan qr code to show your page</string>
- <key>NSLocationWhenInUseUsageDescription</key>
- <string>$(PRODUCT_NAME) will access your location, so that you can get current location where you are</string>
- <key>NSPhotoLibraryAddUsageDescription</key>
- <string>$(PRODUCT_NAME) needs access your photo Album, so that you can save image to your photo library.</string>
- <key>NSPhotoLibraryUsageDescription</key>
- <string>$(PRODUCT_NAME) needs access your photo Album,so that you can save image to your photo library.</string>
- <key>UIApplicationShortcutItems</key>
- <array>
- <dict>
- <key>UIApplicationShortcutItemIconFile</key>
- <string>scan_history</string>
- <key>UIApplicationShortcutItemSubtitle</key>
- <string>history</string>
- <key>UIApplicationShortcutItemTitle</key>
- <string>Scan history</string>
- <key>UIApplicationShortcutItemType</key>
- <string>com.taobao.WeexDemo.scan.history</string>
- </dict>
- <dict>
- <key>UIApplicationShortcutItemIconFile</key>
- <string>scan</string>
- <key>UIApplicationShortcutItemSubtitle</key>
- <string>scan QR code</string>
- <key>UIApplicationShortcutItemTitle</key>
- <string>Scan QR</string>
- <key>UIApplicationShortcutItemType</key>
- <string>com.taobao.WeexDemo.scan</string>
- </dict>
- </array>
- <key>UIRequiredDeviceCapabilities</key>
- <array>
- <string>armv7</string>
- </array>
- <key>UIStatusBarStyle</key>
- <string>UIStatusBarStyleLightContent</string>
- <key>UISupportedInterfaceOrientations</key>
- <array>
- <string>UIInterfaceOrientationPortrait</string>
- <string>UIInterfaceOrientationLandscapeLeft</string>
- <string>UIInterfaceOrientationLandscapeRight</string>
- </array>
- <key>UISupportedInterfaceOrientations~ipad</key>
- <array>
- <string>UIInterfaceOrientationPortrait</string>
- <string>UIInterfaceOrientationPortraitUpsideDown</string>
- <string>UIInterfaceOrientationLandscapeLeft</string>
- <string>UIInterfaceOrientationLandscapeRight</string>
- </array>
- <key>UIViewControllerBasedStatusBarAppearance</key>
- <false/>
-</dict>
-</plist>
diff --git a/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.h b/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.h
deleted file mode 100644
index 2dee545..0000000
--- a/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <UIKit/UIKit.h>
-
-@interface WXScannerHistoryVC : UITableViewController<UIGestureRecognizerDelegate>
-
-@end
diff --git a/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.m b/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.m
deleted file mode 100644
index b60c975..0000000
--- a/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.m
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import "WXScannerHistoryVC.h"
-#import "DemoDefine.h"
-#import "WXDemoViewController.h"
-#import "UIViewController+WXDemoNaviBar.h"
-#import <CoreText/CoreText.h>
-
-@interface WXScannerHistoryVC ()
-@property(nonatomic)NSMutableArray * scanner_history;
-@property(nonatomic)UIImageView * qrCodeImageView;
-@end
-
-@implementation WXScannerHistoryVC
-
-- (instancetype)init {
- if (self = [super init]) {
- _scanner_history = [[[NSUserDefaults standardUserDefaults] objectForKey:WX_SCANNER_HISTORY] mutableCopy];
- }
- return self;
-}
-
-- (void)viewDidLoad {
- [super viewDidLoad];
- [self setupNaviBar];
- UITapGestureRecognizer * tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleClick:)];
- [self.tableView addGestureRecognizer:tapGestureRecognizer];
- tapGestureRecognizer.delegate = self;
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadHistory) name:NSUserDefaultsDidChangeNotification object:nil];
-}
-
-- (void)dealloc {
- [[NSNotificationCenter defaultCenter] removeObserver:self];
-}
-
-#pragma mark - Table view data source
-
-- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
- return 1;
-}
-
-- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
- return 88.0f;
-}
-
-- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
- return [_scanner_history count];
-}
-
-- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
- [tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"WX_SCANNER_HISTORY_CELL"];
- UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"WX_SCANNER_HISTORY_CELL" forIndexPath:indexPath];
- if (!cell) {
- cell = [UITableViewCell new];
- }
- UILongPressGestureRecognizer * longPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)];
- longPressGesture.minimumPressDuration = 1.0;
- longPressGesture.delegate = self;
- [cell addGestureRecognizer:longPressGesture];
- NSMutableAttributedString * attributeString = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%ld %@",(long)indexPath.row+1,[_scanner_history objectAtIndex:indexPath.row]]];
- [attributeString addAttribute:(NSString*)NSForegroundColorAttributeName value:(id)[UIColor redColor].CGColor range:NSMakeRange(0, 1)];
- NSDictionary<NSString*, id> *attributes = @{
- NSForegroundColorAttributeName:[UIColor redColor],
- NSFontAttributeName: [UIFont boldSystemFontOfSize:25.0],
- };
- [attributeString addAttributes:attributes range:NSMakeRange(0, 2)];
- cell.textLabel.attributedText = attributeString;
- cell.textLabel.numberOfLines = 0;
-
- return cell;
-}
-
-- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
-{
- NSString *urlStr = _scanner_history[indexPath.row];
- if (urlStr) {
- WXDemoViewController * demoVC = [WXDemoViewController new];
- demoVC.url = [NSURL URLWithString:urlStr];
- [self.navigationController pushViewController:demoVC animated:YES];
- }
-}
-
-- (void)reloadHistory
-{
- if ([_scanner_history count]) {
- [_qrCodeImageView removeFromSuperview];
- [_scanner_history removeAllObjects];
- _scanner_history = [[[NSUserDefaults standardUserDefaults] objectForKey:WX_SCANNER_HISTORY] mutableCopy];
- [self.tableView reloadData];
- }
-}
-
-- (void)handleClick:(UITapGestureRecognizer*)gestureRecognizer
-{
- CGPoint clickPoint = [gestureRecognizer locationInView:self.tableView];
- if (!CGRectContainsPoint(_qrCodeImageView.frame, clickPoint)) {
- [_qrCodeImageView removeFromSuperview];
- }
-}
-
-- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
-{
- if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]) {
- if ([_qrCodeImageView superview]) {
- return YES;
- }
- }
- if ([gestureRecognizer isKindOfClass:[UILongPressGestureRecognizer class]]) {
- return YES;
- }
- return NO;
-}
-
-- (void)handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer
-{
- if (gestureRecognizer.state != UIGestureRecognizerStateBegan) {
- return ;
- }
- CGPoint pressPoint = [gestureRecognizer locationInView:self.tableView];
- NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:pressPoint];
- if (indexPath == nil) {
- return;
- }
-
- NSString * url = _scanner_history[indexPath.row];
- UIImage * qrCodeImage = [self getQRCodeWithData:url size:CGSizeMake(300, 300)];
- _qrCodeImageView.contentMode = UIViewContentModeScaleAspectFill;
- if (![_qrCodeImageView superview]) {
- _qrCodeImageView = [[UIImageView alloc] initWithImage:qrCodeImage];
- [_qrCodeImageView setCenter:self.view.center];
- [self.view addSubview:_qrCodeImageView];
- }else {
- _qrCodeImageView.image = qrCodeImage;
- }
-}
-
-- (UIImage*)getQRCodeWithData:(NSString*)url size:(CGSize)size {
- CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
- [filter setDefaults];
- NSString *info = url;
- NSData *infoData = [info dataUsingEncoding:NSUTF8StringEncoding];
- [filter setValue:infoData forKeyPath:@"inputMessage"];
-
- CIImage *outputImage = [filter outputImage];
- CGRect extent = CGRectIntegral(outputImage.extent);
- CGFloat scale = MIN(size.width/CGRectGetWidth(extent), size.width/CGRectGetHeight(extent));
-
- size_t width = CGRectGetWidth(extent) * scale;
- size_t height = CGRectGetHeight(extent) * scale;
- CGColorSpaceRef cs = CGColorSpaceCreateDeviceGray();
- CGContextRef bitmapRef = CGBitmapContextCreate(nil, width, height, 8, 0, cs, (CGBitmapInfo)kCGImageAlphaNone);
- CIContext *context = [CIContext contextWithOptions:nil];
- CGImageRef bitmapImage = [context createCGImage:outputImage fromRect:extent];
- CGContextSetInterpolationQuality(bitmapRef, kCGInterpolationNone);
- CGContextScaleCTM(bitmapRef, scale, scale);
- CGContextDrawImage(bitmapRef, extent, bitmapImage);
-
- CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef);
- CGContextRelease(bitmapRef);
- CGImageRelease(bitmapImage);
- return [UIImage imageWithCGImage:scaledImage];
-}
-
-/*
-// Override to support conditional editing of the table view.
-- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
- // Return NO if you do not want the specified item to be editable.
- return YES;
-}
-*/
-
-/*
-// Override to support editing the table view.
-- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
- if (editingStyle == UITableViewCellEditingStyleDelete) {
- // Delete the row from the data source
- [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
- } else if (editingStyle == UITableViewCellEditingStyleInsert) {
- // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
- }
-}
-*/
-
-/*
-// Override to support rearranging the table view.
-- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
-}
-*/
-
-/*
-// Override to support conditional rearranging of the table view.
-- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
- // Return NO if you do not want the item to be re-orderable.
- return YES;
-}
-*/
-
-/*
-#pragma mark - Navigation
-
-// In a storyboard-based application, you will often want to do a little preparation before navigation
-- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
- // Get the new view controller using [segue destinationViewController].
- // Pass the selected object to the new view controller.
-}
-*/
-
-@end
diff --git a/ios/playground/WeexDemo/Scanner/WXScannerVC.h b/ios/playground/WeexDemo/Scanner/WXScannerVC.h
deleted file mode 100644
index aff1805..0000000
--- a/ios/playground/WeexDemo/Scanner/WXScannerVC.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <UIKit/UIKit.h>
-#import <AVFoundation/AVFoundation.h>
-
-@interface WXScannerVC : UIViewController <AVCaptureMetadataOutputObjectsDelegate>
-
-@end
diff --git a/ios/playground/WeexDemo/Scanner/WXScannerVC.m b/ios/playground/WeexDemo/Scanner/WXScannerVC.m
deleted file mode 100644
index 01b3262..0000000
--- a/ios/playground/WeexDemo/Scanner/WXScannerVC.m
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <WeexSDK/WeexSDK.h>
-#import "WXScannerVC.h"
-#import "AppDelegate.h"
-#import "UIViewController+WXDemoNaviBar.h"
-#import "WXDemoViewController.h"
-#import "WXDebugTool.h"
-#import "WXDevTool.h"
-#import <AudioToolbox/AudioToolbox.h>
-
-@interface WXScannerVC ()
-
-@property (nonatomic, strong) AVCaptureSession * session;
-@property (nonatomic, strong) AVCaptureVideoPreviewLayer *captureLayer;
-@property (nonatomic, strong) UIView *sanFrameView;
-
-@end
-
-@implementation WXScannerVC
-
-#pragma mark - lifeCircle
-
-- (void)dealloc {
- [_captureLayer removeFromSuperlayer];
-}
-
-- (void)viewDidLoad {
- [super viewDidLoad];
- self.edgesForExtendedLayout = UIRectEdgeNone;
-
-#if !(TARGET_IPHONE_SIMULATOR)
- self.session = [[AVCaptureSession alloc]init];
- [_session setSessionPreset:AVCaptureSessionPresetHigh];
- AVCaptureDevice * device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
- AVCaptureDeviceInput * input = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil];
- AVCaptureMetadataOutput * output = [[AVCaptureMetadataOutput alloc]init];
- if (output && input && device) {
- [output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
- [_session addInput:input];
- [_session addOutput:output];
- output.metadataObjectTypes=@[AVMetadataObjectTypeQRCode,AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code, AVMetadataObjectTypeCode128Code];
- }
-
- _captureLayer = [AVCaptureVideoPreviewLayer layerWithSession:_session];
- _captureLayer.videoGravity=AVLayerVideoGravityResizeAspectFill;
- _captureLayer.frame=self.view.layer.bounds;
-#endif
-}
-
-- (void)viewWillAppear:(BOOL)animated {
- [super viewWillAppear:animated];
- [self.navigationController setNavigationBarHidden:NO];
- [self setupNaviBar];
- [self.view.layer addSublayer:_captureLayer];
- [_session startRunning];
-}
-
-- (void) viewDidDisappear:(BOOL)animated
-{
- [super viewDidDisappear:animated];
-
- [_captureLayer removeFromSuperlayer];
- [_session stopRunning];
-}
-
-- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection
-{
- [_captureLayer removeFromSuperlayer];
- [_session stopRunning];
- AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
- if (metadataObjects.count > 0) {
- AVMetadataMachineReadableCodeObject * metadataObject = [metadataObjects objectAtIndex: 0];
- [self recordScannerHistory:metadataObject.stringValue];
- [self openURL:metadataObject.stringValue];
- }
-}
-
-- (void)openURL:(NSString*)URL
-{
- NSString *transformURL = URL;
- NSArray* elts = [URL componentsSeparatedByString:@"?"];
- if (elts.count >= 2) {
- NSArray *urls = [elts.lastObject componentsSeparatedByString:@"="];
- for (NSString *param in urls) {
- if ([param isEqualToString:@"_wx_tpl"]) {
- transformURL = [[urls lastObject] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
- break;
- }
- }
- }
- NSURL *url = [NSURL URLWithString:transformURL];
- if ([self remoteDebug:url]) {
- return;
- }
- [self jsReplace:url];
- WXDemoViewController * controller = [[WXDemoViewController alloc] init];
- controller.url = url;
- controller.source = @"scan";
-
- NSMutableDictionary *queryDict = [NSMutableDictionary new];
- if (WX_SYS_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")) {
- NSURLComponents *components = [NSURLComponents componentsWithURL:url resolvingAgainstBaseURL:NO];
- NSArray *queryItems = [components queryItems];
-
- for (NSURLQueryItem *item in queryItems)
- [queryDict setObject:item.value forKey:item.name];
- }else {
- queryDict = [self queryWithURL:url];
- }
- NSString *wsport = queryDict[@"wsport"] ?: @"8082";
- NSURL *socketURL = [NSURL URLWithString:[NSString stringWithFormat:@"ws://%@:%@", url.host, wsport]];
- controller.hotReloadSocket = [[SRWebSocket alloc] initWithURL:socketURL protocols:@[@"echo-protocol"]];
- controller.hotReloadSocket.delegate = controller;
- [controller.hotReloadSocket open];
-
- [[self navigationController] pushViewController:controller animated:YES];
-}
-
-- (NSMutableDictionary*)queryWithURL:(NSURL *)url {
- NSMutableDictionary * queryDic = nil;
- if (![url query]) {
- return queryDic;
- }
- queryDic = [NSMutableDictionary new];
- NSArray* components = [[url query] componentsSeparatedByString:@"&"];
- for (NSUInteger i = 0; i < [components count]; i ++) {
- NSString * queryParam = [components objectAtIndex:i];
- NSArray* component = [queryParam componentsSeparatedByString:@"="];
- [queryDic setValue:component[1] forKey:component[0]];
- }
-
- return queryDic;
-}
-
-#pragma mark - Replace JS
-
-- (void)jsReplace:(NSURL *)url
-{
- if ([[url host] isEqualToString:@"weex-remote-debugger"]){
- NSString* path = [url path];
- if ([path isEqualToString:@"/dynamic/replace/bundle"]){
- for (NSString * param in [[url query] componentsSeparatedByString:@"&"]) {
- NSArray* elts = [param componentsSeparatedByString:@"="];
- if ([elts count] < 2) {
- continue;
- }
- if ([[elts firstObject] isEqualToString:@"bundle"]){
- [WXDebugTool setReplacedBundleJS:[NSURL URLWithString:[elts lastObject]]];
- }
- }
- }
-
- if ([path isEqualToString:@"/dynamic/replace/framework"]){
- for (NSString * param in [[url query] componentsSeparatedByString:@"&"]) {
- NSArray* elts = [param componentsSeparatedByString:@"="];
- if ([elts count] < 2) {
- continue;
- }
- if ([[elts firstObject] isEqualToString:@"framework"]){
- [WXDebugTool setReplacedJSFramework:[NSURL URLWithString:[elts lastObject]]];
- }
- }
- }
- }
-}
-
-#pragma mark Remote debug
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
-- (BOOL)remoteDebug:(NSURL *)url
-{
- if ([url.scheme isEqualToString:@"ws"]) {
- [WXSDKEngine connectDebugServer:url.absoluteString];
- [WXSDKEngine initSDKEnvironment];
-
- return YES;
- }
-
- NSString *query = url.query;
- for (NSString *param in [query componentsSeparatedByString:@"&"]) {
- NSArray *elts = [param componentsSeparatedByString:@"="];
- if([elts count] < 2) continue;
- if ([[elts firstObject] isEqualToString:@"_wx_debug"]) {
- [WXDebugTool setDebug:YES];
- [WXSDKEngine connectDebugServer:[[elts lastObject] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
- if ([[[self.navigationController viewControllers] objectAtIndex:0] isKindOfClass:NSClassFromString(@"WXDemoViewController")]) {
- WXDemoViewController * vc = (WXDemoViewController*)[[self.navigationController viewControllers] objectAtIndex:0];
- [vc performSelector:NSSelectorFromString(@"loadRefreshCtl")];
- [self.navigationController popToViewController:vc animated:NO];
- }
- return YES;
- } else if ([[elts firstObject] isEqualToString:@"_wx_devtool"]) {
- NSString *devToolURL = [[elts lastObject] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
- [WXDevTool launchDevToolDebugWithUrl:devToolURL];
- if ([[[self.navigationController viewControllers] objectAtIndex:0] isKindOfClass:NSClassFromString(@"WXDemoViewController")]) {
- WXDemoViewController * vc = (WXDemoViewController*)[[self.navigationController viewControllers] objectAtIndex:0];
- [self.navigationController popToViewController:vc animated:NO];
- }
-
- return YES;
- }
- }
-
- return NO;
-}
-#pragma clang diagnostic pop
-
-- (void)recordScannerHistory:(NSString*)urlStr {
-
- NSMutableArray * scanner_history = [[[NSUserDefaults standardUserDefaults] objectForKey:WX_SCANNER_HISTORY] mutableCopy];
- if (!scanner_history) {
- scanner_history = [NSMutableArray new];
- }
- if ([scanner_history containsObject:urlStr]) {
- [scanner_history removeObject:urlStr];
- }
- if ([scanner_history count] >= 7) {
- [scanner_history removeLastObject];
- }
- [scanner_history insertObject:urlStr atIndex:0];
- [[NSUserDefaults standardUserDefaults] setObject:scanner_history forKey:WX_SCANNER_HISTORY];
-}
-
-@end
diff --git a/ios/playground/WeexDemo/UIView+UIThreadCheck.h b/ios/playground/WeexDemo/UIView+UIThreadCheck.h
deleted file mode 100644
index 154b602..0000000
--- a/ios/playground/WeexDemo/UIView+UIThreadCheck.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <UIKit/UIKit.h>
-
-@interface UIView (UIThreadCheck)
-
-+ (void)wx_checkUIThread;
-
-@end
diff --git a/ios/playground/WeexDemo/UIView+UIThreadCheck.m b/ios/playground/WeexDemo/UIView+UIThreadCheck.m
deleted file mode 100644
index b8d4ed8..0000000
--- a/ios/playground/WeexDemo/UIView+UIThreadCheck.m
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import "UIView+UIThreadCheck.h"
-#import <WeexSDK/NSObject+WXSwizzle.h>
-
-#define WXCheckUIThread() NSAssert([NSThread isMainThread], \
-@"You must change UI on main thread!")
-
-@implementation UIView (UIThreadCheck)
-
-+ (void)wx_checkUIThread
-{
- [self weex_swizzle:[self class] Method:@selector(setNeedsLayout) withMethod:@selector(wx_setNeedsLayout)];
- [self weex_swizzle:[self class] Method:@selector(setNeedsDisplay) withMethod:@selector(wx_setNeedsDisplay)];
- [self weex_swizzle:[self class] Method:@selector(setNeedsDisplayInRect:) withMethod:@selector(wx_setNeedsDisplayInRect:)];
-}
-
-- (void)wx_setNeedsLayout
-{
- WXCheckUIThread();
- [self wx_setNeedsLayout];
-}
-
-- (void)wx_setNeedsDisplay
-{
- WXCheckUIThread();
- [self wx_setNeedsDisplay];
-}
-
-- (void)wx_setNeedsDisplayInRect:(CGRect)rect
-{
- WXCheckUIThread();
- [self wx_setNeedsDisplayInRect:rect];
-}
-
-@end
diff --git a/ios/playground/WeexDemo/UIViewController+WXDemoNaviBar.h b/ios/playground/WeexDemo/UIViewController+WXDemoNaviBar.h
deleted file mode 100644
index 3ddbfd8..0000000
--- a/ios/playground/WeexDemo/UIViewController+WXDemoNaviBar.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <UIKit/UIKit.h>
-#import "DemoDefine.h"
-
-@interface UIViewController (WXDemoNaviBar) <UIGestureRecognizerDelegate>
-
-/**
- * back button click action
- * @param sender responder
- */
-- (void)backButtonClicked:(id)sender;
-
-- (void)setupNaviBar;
-
-@end
-
diff --git a/ios/playground/WeexDemo/UIViewController+WXDemoNaviBar.m b/ios/playground/WeexDemo/UIViewController+WXDemoNaviBar.m
deleted file mode 100644
index 09b4105..0000000
--- a/ios/playground/WeexDemo/UIViewController+WXDemoNaviBar.m
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import "UIViewController+WXDemoNaviBar.h"
-#import "WXScannerVC.h"
-#import "WXScannerHistoryVC.h"
-#import "WXDefine.h"
-#import <objc/runtime.h>
-
-@implementation UIViewController (WXDemoNaviBar)
-
-- (void)setupNaviBar
-{
- UIScreenEdgePanGestureRecognizer *edgePanGestureRecognizer = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(edgePanGesture:)];
- edgePanGestureRecognizer.delegate = self;
- edgePanGestureRecognizer.edges = UIRectEdgeLeft;
- [self.view addGestureRecognizer:edgePanGestureRecognizer];
-
- NSArray *ver = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
- if ([[ver objectAtIndex:0] intValue] >= 7) {
- // iOS 7.0 or later
- self.navigationController.navigationBar.barTintColor = WEEX_COLOR;
- self.navigationController.navigationBar.tintColor = [UIColor whiteColor];
- [self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];
- self.navigationController.navigationBar.translucent = NO;
- }
- if (!self.navigationItem.leftBarButtonItem) {
- UIBarButtonItem *leftItem;
- if(![[self.navigationController.viewControllers objectAtIndex:0] isEqual:self]) {
- leftItem = [self backButtonItem];
- } else {
- leftItem = [self leftBarButtonItem];
- }
- self.navigationItem.leftBarButtonItems = @[leftItem];
- }
- if ([self isKindOfClass:[WXScannerVC class]]) {
- UIBarButtonItem *historyItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"scan_history"]
- style:UIBarButtonItemStylePlain
- target:self
- action:@selector(historyButtonClicked:)];
- self.navigationItem.rightBarButtonItems = @[historyItem];
- }
- if([self isKindOfClass:[WXScannerHistoryVC class]]) {
- UIBarButtonItem *historyItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"delete"]
- style:UIBarButtonItemStylePlain
- target:self
- action:@selector(clearScannerHistory:)];
- self.navigationItem.rightBarButtonItems = @[historyItem];
- }
-}
-
-- (void)edgePanGesture:(UIScreenEdgePanGestureRecognizer*)edgePanGestureRecognizer
-{
- [self.navigationController popViewControllerAnimated:YES];
-}
-
-#pragma mark- UIGestureRecognizerDelegate
-- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
-{
- if (self.navigationController && [self.navigationController.viewControllers count] == 1) {
- return NO;
- }
- return YES;
-}
-
-#pragma mark -
-#pragma mark - UIBarButtonItems
-
-- (UIBarButtonItem *)leftBarButtonItem
-{
- UIBarButtonItem *leftItem = objc_getAssociatedObject(self, _cmd);
-
- if (!leftItem) {
- leftItem = [[UIBarButtonItem alloc]
- initWithImage:[UIImage imageNamed:@"scan"]
- style:UIBarButtonItemStylePlain
- target:self
- action:@selector(scanQR:)];
- leftItem.accessibilityHint = @"click to scan qr code";
- leftItem.accessibilityValue = @"scan qr code";
- objc_setAssociatedObject(self, _cmd, leftItem, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
- }
- return leftItem;
-}
-
-- (UIBarButtonItem *)backButtonItem
-{
- UIBarButtonItem *backButtonItem = objc_getAssociatedObject(self, _cmd);
- if (!backButtonItem) {
- backButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"back"]
- style:UIBarButtonItemStylePlain
- target:self
- action:@selector(backButtonClicked:)];
- objc_setAssociatedObject(self, _cmd, backButtonItem, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
- }
- return backButtonItem;
-}
-
-#pragma mark -
-#pragma mark - UIBarButtonItem actions
-
-- (void)scanQR:(id)sender {
-
- WXScannerVC * scanViewController = [[WXScannerVC alloc] init];
- [self.navigationController pushViewController:scanViewController animated:YES];
-}
-
-- (void)backButtonClicked:(id)sender {
-
- [self.navigationController popViewControllerAnimated:YES];
-}
-
-- (void)historyButtonClicked:(id)sender {
-
- [self.navigationController pushViewController:[WXScannerHistoryVC new] animated:YES];
-}
-
-- (void)clearScannerHistory:(id)sender {
- [[NSUserDefaults standardUserDefaults] removeObjectForKey:WX_SCANNER_HISTORY];
-}
-
-@end
diff --git a/ios/playground/WeexDemo/WXConfigCenterDefaultImpl.h b/ios/playground/WeexDemo/WXConfigCenterDefaultImpl.h
deleted file mode 100644
index 2889a4a..0000000
--- a/ios/playground/WeexDemo/WXConfigCenterDefaultImpl.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <Foundation/Foundation.h>
-#import "WXConfigCenterProtocol.h"
-
-@interface WXConfigCenterDefaultImpl : NSObject<WXConfigCenterProtocol>
-
-@end
diff --git a/ios/playground/WeexDemo/WXConfigCenterDefaultImpl.m b/ios/playground/WeexDemo/WXConfigCenterDefaultImpl.m
deleted file mode 100644
index d127edb..0000000
--- a/ios/playground/WeexDemo/WXConfigCenterDefaultImpl.m
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import "WXConfigCenterDefaultImpl.h"
-
-@implementation WXConfigCenterDefaultImpl
-
-- (id)configForKey:(NSString *)key defaultValue:(id)defaultValue isDefault:(BOOL *)isDefault
-{
- NSArray<NSString*>* keys = [key componentsSeparatedByString:@"."];
- if ([keys[0] isEqualToString:@"iOS_weex_ext_config"] && [keys[1] isEqualToString:@"text_render_useCoreText"]){
- return @YES;
- }
- if ([keys[0] isEqualToString:@"iOS_weex_ext_config"] && [keys[1] isEqualToString:@"slider_class_name"]){
- return @"WXCycleSliderComponent";
- }
- if ([keys[0] isEqualToString:@"iOS_weex_prerender_config"] && [keys[1] isEqualToString:@"is_switch_on"]){
- return @YES;
- }
- if ([keys[0] isEqualToString:@"iOS_weex_prerender_config"] && [keys[1] isEqualToString:@"cacheTime"]){
- return @300000;
- }
- if ([keys[0] isEqualToString:@"iOS_weex_prerender_config"] && [keys[1] isEqualToString:@"max_cache_num"]){
- return @2;
- }
- return defaultValue;
-}
-
-@end
diff --git a/ios/playground/WeexDemo/WXDemoViewController.h b/ios/playground/WeexDemo/WXDemoViewController.h
deleted file mode 100644
index be2935d..0000000
--- a/ios/playground/WeexDemo/WXDemoViewController.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <UIKit/UIKit.h>
-#import <SRWebSocket.h>
-
-@interface WXDemoViewController : UIViewController<SRWebSocketDelegate>
-
-@property (nonatomic, strong) NSString *script;
-@property (nonatomic, strong) NSURL *url;
-@property (nonatomic, assign) BOOL showNavigationBar;
-@property (nonatomic, strong) SRWebSocket *hotReloadSocket;
-@property (nonatomic, strong) NSString *source;
-
-@end
-
diff --git a/ios/playground/WeexDemo/WXDemoViewController.m b/ios/playground/WeexDemo/WXDemoViewController.m
deleted file mode 100644
index c3e321d..0000000
--- a/ios/playground/WeexDemo/WXDemoViewController.m
+++ /dev/null
@@ -1,348 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import "WXDemoViewController.h"
-#import <WeexSDK/WXSDKInstance.h>
-#import <WeexSDK/WXSDKEngine.h>
-#import <WeexSDK/WXUtility.h>
-#import <WeexSDK/WXDebugTool.h>
-#import <WeexSDK/WXSDKManager.h>
-#import "UIViewController+WXDemoNaviBar.h"
-#import "DemoDefine.h"
-#import "WXPrerenderManager.h"
-#import "WXMonitor.h"
-#import "AppDelegate.h"
-
-@interface WXDemoViewController () <UIScrollViewDelegate, UIWebViewDelegate>
-@property (nonatomic, strong) WXSDKInstance *instance;
-@property (nonatomic, strong) UIView *weexView;
-
-@property (nonatomic, strong) NSArray *refreshList;
-@property (nonatomic, strong) NSArray *refreshList1;
-@property (nonatomic, strong) NSArray *refresh;
-@property (nonatomic) NSInteger count;
-
-@property (nonatomic, assign) CGFloat weexHeight;
-@property (nonatomic, weak) id<UIScrollViewDelegate> originalDelegate;
-
-@end
-
-@implementation WXDemoViewController
-
-- (instancetype)init
-{
- if (self = [super init]) {
- }
-
- return self;
-}
-
-- (void)setInterfaceOrientation:(UIDeviceOrientation)orientation
-{
- if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)]) {
- [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:orientation]
- forKey:@"orientation"];
- }
-}
-
-- (void)viewDidLoad
-{
- [super viewDidLoad];
-
- self.view.backgroundColor = [UIColor whiteColor];
- [self.view setClipsToBounds:YES];
-
- _showNavigationBar = NO;
- [self.navigationController setNavigationBarHidden:_showNavigationBar];
- _weexHeight = self.view.frame.size.height - CGRectGetMaxY(self.navigationController.navigationBar.frame);
-
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notificationRefreshInstance:) name:@"RefreshInstance" object:nil];
- [self render];
-}
-
-- (void)viewDidAppear:(BOOL)animated
-{
- [super viewDidAppear:animated];
- [self updateInstanceState:WeexInstanceAppear];
-
- AppDelegate* appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
- appDelegate.allowRotation = NO;
- [_instance isKeepingRawCssStyles:^(BOOL value) {
- appDelegate.allowRotation = value;
- }];
-}
-
-- (void)viewDidDisappear:(BOOL)animated
-{
- [super viewDidDisappear:animated];
- [_instance didDisappear];
- [self updateInstanceState:WeexInstanceDisappear];
-}
-
-- (void)viewWillDisappear:(BOOL)animated
-{
- [super viewWillDisappear:animated];
- // restore to protrait
- AppDelegate* appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
- appDelegate.allowRotation = NO;
- [self setInterfaceOrientation:UIDeviceOrientationPortrait];
-}
-
-- (void)viewWillAppear:(BOOL)animated
-{
- [super viewWillAppear:animated];
- [_instance willAppear];
- [self setupNaviBar];
- [self setupRightBarItem];
- [self.navigationController setNavigationBarHidden:_showNavigationBar];
-}
-
-//TODO get height
-- (void)viewDidLayoutSubviews
-{
- _weexHeight = [UIScreen mainScreen].bounds.size.height - CGRectGetMaxY(self.navigationController.navigationBar.frame);
- UIEdgeInsets safeArea = UIEdgeInsetsZero;
-#ifdef __IPHONE_11_0
- if (@available(iOS 11.0, *)) {
- safeArea = self.view.safeAreaInsets;
- } else {
- // Fallback on earlier versions
- }
-#endif
- _instance.frame = CGRectMake(safeArea.left, safeArea.top, self.view.frame.size.width-safeArea.left-safeArea.right, _weexHeight-safeArea.top-safeArea.bottom);
-}
-
-- (void)didReceiveMemoryWarning {
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
-}
-
-- (void)dealloc
-{
-
- [_instance destroyInstance];
-#ifdef DEBUG
- [_instance forceGarbageCollection];
-#endif
-
- [[NSNotificationCenter defaultCenter] removeObserver:self];
-}
-
-- (void)render
-{
- CGFloat width = self.view.frame.size.width;
-// if ([_url.absoluteString isEqualToString:HOME_URL]) {
-// [self.navigationController setNavigationBarHidden:YES];
-// }
- [_instance destroyInstance];
- _instance = [[WXSDKInstance alloc] init];
- if([WXPrerenderManager isTaskExist:[self.url absoluteString]]){
- _instance = [WXPrerenderManager instanceFromUrl:self.url.absoluteString];
- }
-
- _instance.isMainContainerStack = YES;
- _instance.viewController = self;
- UIEdgeInsets safeArea = UIEdgeInsetsZero;
-
-#ifdef __IPHONE_11_0
- if (@available(iOS 11.0, *)) {
- safeArea = self.view.safeAreaInsets;
- } else {
- // Fallback on earlier versions
- }
-#endif
-
- _instance.frame = CGRectMake(self.view.frame.size.width-width, 0, width, _weexHeight-safeArea.bottom);
-
- __weak typeof(self) weakSelf = self;
- _instance.onCreate = ^(UIView *view) {
- [weakSelf.weexView removeFromSuperview];
- weakSelf.weexView = view;
- [weakSelf.view addSubview:weakSelf.weexView];
- UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, weakSelf.weexView);
- };
- _instance.onFailed = ^(NSError *error) {
- if ([[error domain] isEqualToString:@"1"]) {
- dispatch_async(dispatch_get_main_queue(), ^{
- NSMutableString *errMsg=[NSMutableString new];
- [errMsg appendFormat:@"ErrorType:%@\n",[error domain]];
- [errMsg appendFormat:@"ErrorCode:%ld\n",(long)[error code]];
- [errMsg appendFormat:@"ErrorInfo:%@\n", [error userInfo]];
-
- UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"render failed" message:errMsg delegate:weakSelf cancelButtonTitle:nil otherButtonTitles:@"ok", nil];
- [alertView show];
- });
- }
- };
-
- __weak WXSDKInstance* theInstance = _instance;
- _instance.renderFinish = ^(UIView *view) {
- WXLogDebug(@"%@", @"Render Finish...");
- [weakSelf updateInstanceState:WeexInstanceAppear];
-
- AppDelegate* appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
- appDelegate.allowRotation = NO;
- [theInstance isKeepingRawCssStyles:^(BOOL value) {
- appDelegate.allowRotation = value;
- }];
- };
-
- _instance.updateFinish = ^(UIView *view) {
- WXLogDebug(@"%@", @"Update Finish...");
- };
- if (!self.url) {
- WXLogError(@"error: render url is nil");
- return;
- }
- if([WXPrerenderManager isTaskExist:[self.url absoluteString]]){
- WX_MONITOR_INSTANCE_PERF_START(WXPTJSDownload, _instance);
- WX_MONITOR_INSTANCE_PERF_END(WXPTJSDownload, _instance);
- WX_MONITOR_INSTANCE_PERF_START(WXPTFirstScreenRender, _instance);
- WX_MONITOR_INSTANCE_PERF_START(WXPTAllRender, _instance);
- [WXPrerenderManager renderFromCache:[self.url absoluteString]];
- return;
- }
- _instance.viewController = self;
- NSURL *URL = [self testURL: [self.url absoluteString]];
- NSString *randomURL = [NSString stringWithFormat:@"%@%@random=%d",URL.absoluteString,URL.query?@"&":@"?",arc4random()];
- [_instance renderWithURL:[NSURL URLWithString:randomURL] options:@{@"bundleUrl":URL.absoluteString} data:nil];
- [self.navigationController.navigationBar setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:
- [UIColor whiteColor], NSForegroundColorAttributeName, nil]];
- if([_instance.pageName hasPrefix:@"http://dotwe.org"] || [_instance.pageName hasPrefix:@"https://dotwe.org"]) {
- self.navigationItem.title = @"Weex Online Example";
- } else {
- self.navigationItem.title = _instance.pageName;
- }
-}
-
-- (void)updateInstanceState:(WXState)state
-{
- if (_instance && _instance.state != state) {
- _instance.state = state;
-
- if (state == WeexInstanceAppear) {
- [[WXSDKManager bridgeMgr] fireEvent:_instance.instanceId ref:WX_SDK_ROOT_REF type:@"viewappear" params:nil domChanges:nil];
- }
- else if (state == WeexInstanceDisappear) {
- [[WXSDKManager bridgeMgr] fireEvent:_instance.instanceId ref:WX_SDK_ROOT_REF type:@"viewdisappear" params:nil domChanges:nil];
- }
- }
-}
-
-#pragma mark - refresh
-- (void)refreshWeex
-{
- [self render];
-}
-
-#pragma mark - UIBarButtonItems
-
-- (void)setupRightBarItem
-{
- if ([self.url.scheme hasPrefix:@"http"]) {
- [self loadRefreshCtl];
- }
-}
-
-- (void)loadRefreshCtl {
- UIBarButtonItem *refreshButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"reload"] style:UIBarButtonItemStylePlain target:self action:@selector(refreshWeex)];
- refreshButtonItem.accessibilityHint = @"click to reload curent page";
- self.navigationItem.rightBarButtonItem = refreshButtonItem;
-}
-
-#pragma mark - websocket
-- (void)webSocketDidOpen:(SRWebSocket *)webSocket
-{
-
-}
-
-- (void)webSocket:(SRWebSocket *)webSocket didReceiveMessage:(id)message
-{
- if ([@"refresh" isEqualToString:message]) {
- [self render];
- }
-}
-
-- (void)webSocket:(SRWebSocket *)webSocket didFailWithError:(NSError *)error
-{
-
-}
-
-# pragma mark - orientation
-
-- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
-{
- if (_instance) {
- CGFloat w = [UIScreen mainScreen].bounds.size.width;
- CGFloat h = [UIScreen mainScreen].bounds.size.height;
- [_instance setPageRequiredWidth:w height:h];
- [_instance reloadLayout];
- }
-}
-
-#pragma mark - localBundle
-/*- (void)loadLocalBundle:(NSURL *)url
-{
- NSURL * localPath = nil;
- NSMutableArray * pathComponents = nil;
- if (self.url) {
- pathComponents =[NSMutableArray arrayWithArray:[url.absoluteString pathComponents]];
- [pathComponents removeObjectsInRange:NSRangeFromString(@"0 3")];
- [pathComponents replaceObjectAtIndex:0 withObject:@"bundlejs"];
-
- NSString *filePath = [NSString stringWithFormat:@"%@/%@",[NSBundle mainBundle].bundlePath,[pathComponents componentsJoinedByString:@"/"]];
- localPath = [NSURL fileURLWithPath:filePath];
- }else {
- NSString *filePath = [NSString stringWithFormat:@"%@/bundlejs/index.js",[NSBundle mainBundle].bundlePath];
- localPath = [NSURL fileURLWithPath:filePath];
- }
-
- NSString *bundleUrl = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/bundlejs/",[NSBundle mainBundle].bundlePath]].absoluteString;
- [_instance renderWithURL:localPath options:@{@"bundleUrl":bundleUrl} data:nil];
-}*/
-
-#pragma mark - load local device bundle
-- (NSURL*)testURL:(NSString*)url
-{
- NSRange range = [url rangeOfString:@"_wx_tpl"];
- if (range.location != NSNotFound) {
- NSString *tmp = [url substringFromIndex:range.location];
- NSUInteger start = [tmp rangeOfString:@"="].location;
- NSUInteger end = [tmp rangeOfString:@"&"].location;
- ++start;
- if (end == NSNotFound) {
- end = [tmp length] - start;
- }
- else {
- end = end - start;
- }
- NSRange subRange;
- subRange.location = start;
- subRange.length = end;
- url = [tmp substringWithRange:subRange];
- }
- return [NSURL URLWithString:url];
-}
-
-#pragma mark - notification
-- (void)notificationRefreshInstance:(NSNotification *)notification {
- [self refreshWeex];
-}
-
-@end
diff --git a/ios/playground/WeexDemo/WXExtModule.h b/ios/playground/WeexDemo/WXExtModule.h
deleted file mode 100644
index e440c58..0000000
--- a/ios/playground/WeexDemo/WXExtModule.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <Foundation/Foundation.h>
-
-#import <WeexSDK/WXModuleProtocol.h>
-
-@interface WXExtModule : NSObject <WXModuleProtocol>
-
-@end
diff --git a/ios/playground/WeexDemo/WXExtModule.m b/ios/playground/WeexDemo/WXExtModule.m
deleted file mode 100644
index 16b2e0a..0000000
--- a/ios/playground/WeexDemo/WXExtModule.m
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import "WXExtModule.h"
-
-@implementation WXExtModule
-
-WX_EXPORT_METHOD(@selector(generateCover:))
-
-- (void)generateCover:(WXModuleKeepAliveCallback)callback
-{
-#if DEBUG
-#if !TARGET_IPHONE_SIMULATOR
- NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- NSString *documentsDirectory = [paths objectAtIndex:0];
- setenv("GCOV_PREFIX", [documentsDirectory cStringUsingEncoding:NSUTF8StringEncoding], 1);
- setenv("GCOV_PREFIX_STRIP", "6", 1);
-#endif
-
-#if defined __cplusplus
- extern "C" {
-#endif
- extern void __gcov_flush(void);
- __gcov_flush();
-#if defined __cplusplus
- };
-#endif
-
- if (callback) {
- NSDictionary * result = @{@"ok": @true};
- callback(result,NO);
- }
-#else
- if (callback) {
- NSDictionary * result = @{@"ok": @false,@"msg":@"only debug mode support"};
- callback(result,NO);
- }
-#endif
-}
-
-@end
diff --git a/ios/playground/WeexDemo/WXExtendCallNativeTest.h b/ios/playground/WeexDemo/WXExtendCallNativeTest.h
deleted file mode 100644
index 4671779..0000000
--- a/ios/playground/WeexDemo/WXExtendCallNativeTest.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <Foundation/Foundation.h>
-#import "WXExtendCallNativeProtocol.h"
-
-@interface WXExtendCallNativeTest : NSObject<WXExtendCallNativeProtocol>
-
-@end
diff --git a/ios/playground/WeexDemo/WXExtendCallNativeTest.m b/ios/playground/WeexDemo/WXExtendCallNativeTest.m
deleted file mode 100644
index ba11caf..0000000
--- a/ios/playground/WeexDemo/WXExtendCallNativeTest.m
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import "WXExtendCallNativeTest.h"
-
-@implementation WXExtendCallNativeTest
-
-#pragma mark -
-#pragma WXExtendCallNativeProtocol
-
-+ (BOOL)checkParameters:(NSDictionary *)parameters
-{
- if(!parameters || ![parameters isKindOfClass:[NSDictionary class]]){
- return NO;
- }
-
- if(!parameters[@"className"]){
- return NO;
- }
-
- return YES;
-}
-
-
-+ (id)excuteCallNative:(NSDictionary *)parameters
-{
- NSLog(@"weex test");
- return @{@"value":@"test"};
-}
-
-@end
diff --git a/ios/playground/WeexDemo/WXNavigationHandlerImpl.h b/ios/playground/WeexDemo/WXNavigationHandlerImpl.h
deleted file mode 100644
index bfd4020..0000000
--- a/ios/playground/WeexDemo/WXNavigationHandlerImpl.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <Foundation/Foundation.h>
-#import <WeexSDK/WXNavigationProtocol.h>
-
-@interface WXNavigationHandlerImpl : NSObject <WXNavigationProtocol>
-
-@end
diff --git a/ios/playground/WeexDemo/WXNavigationHandlerImpl.m b/ios/playground/WeexDemo/WXNavigationHandlerImpl.m
deleted file mode 100644
index 67b129c..0000000
--- a/ios/playground/WeexDemo/WXNavigationHandlerImpl.m
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <WeexSDK/WeexSDK.h>
-#import "WXNavigationHandlerImpl.h"
-#import "WXDemoViewController.h"
-
-@implementation WXNavigationHandlerImpl
-
-
-
-- (void)clearNavigationItemWithParam:(NSDictionary *)param position:(WXNavigationItemPosition)position completion:(WXNavigationResultBlock)block withContainer:(UIViewController *)container {
-
-}
-
-- (id)navigationControllerOfContainer:(UIViewController *)container {
- return container.navigationController;
-}
-
-- (void)popViewControllerWithParam:(NSDictionary *)param completion:(WXNavigationResultBlock)block withContainer:(UIViewController *)container {
- BOOL animated = YES;
- id obj = [param objectForKey:@"animated"];
- if (obj) {
- animated = [WXConvert BOOL:obj];
- }
- [container.navigationController popViewControllerAnimated:animated];
-}
-
-- (void)pushViewControllerWithParam:(NSDictionary *)param completion:(WXNavigationResultBlock)block withContainer:(UIViewController *)container {
- BOOL animated = YES;
- NSString *obj = [[param objectForKey:@"animated"] lowercaseString];
- if (obj && [obj isEqualToString:@"false"]) {
- animated = NO;
- }
-
- WXDemoViewController *vc = [[WXDemoViewController alloc] init];
- vc.url = [NSURL URLWithString:param[@"url"]];
- vc.hidesBottomBarWhenPushed = YES;
- [container.navigationController pushViewController:vc animated:animated];
-}
-
-- (void)setNavigationBackgroundColor:(UIColor *)backgroundColor withContainer:(UIViewController *)container {
-
-}
-
-- (void)setNavigationBarHidden:(BOOL)hidden animated:(BOOL)animated withContainer:(UIViewController *)container {
- if (![container isKindOfClass:[WXBaseViewController class]]) {
- return;
- }
-
- container.navigationController.navigationBarHidden = hidden;
-}
-
-- (void)setNavigationItemWithParam:(NSDictionary *)param position:(WXNavigationItemPosition)position completion:(WXNavigationResultBlock)block withContainer:(UIViewController *)container {
-
-}
-
-@end
diff --git a/ios/playground/WeexDemo/WXSyncTestModule.h b/ios/playground/WeexDemo/WXSyncTestModule.h
deleted file mode 100644
index 254af6f..0000000
--- a/ios/playground/WeexDemo/WXSyncTestModule.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <Foundation/Foundation.h>
-#import <WeexSDK/WXModuleProtocol.h>
-
-@interface WXSyncTestModule : NSObject <WXModuleProtocol>
-
-@end
diff --git a/ios/playground/WeexDemo/WXSyncTestModule.m b/ios/playground/WeexDemo/WXSyncTestModule.m
deleted file mode 100644
index 784502d..0000000
--- a/ios/playground/WeexDemo/WXSyncTestModule.m
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import "WXSyncTestModule.h"
-
-@implementation WXSyncTestModule
-
-WX_EXPORT_METHOD_SYNC(@selector(getString))
-WX_EXPORT_METHOD_SYNC(@selector(getNumber))
-WX_EXPORT_METHOD_SYNC(@selector(getArray))
-WX_EXPORT_METHOD_SYNC(@selector(getObject))
-
-- (NSString *)getString
-{
- return @"testString";
-}
-
-- (NSUInteger)getNumber
-{
- return 111111;
-}
-
-- (NSArray *)getArray
-{
- return @[@(111111),@"testString",@"testString2"];
-}
-
-- (NSDictionary *)getObject
-{
- return @{@"number":@(111111), @"string1":@"testString",@"string2":@"testString2"};
-}
-
-@end
diff --git a/ios/playground/WeexDemo/Websocket/SRWebSocket+Weex.h b/ios/playground/WeexDemo/Websocket/SRWebSocket+Weex.h
deleted file mode 100644
index 8bb36b5..0000000
--- a/ios/playground/WeexDemo/Websocket/SRWebSocket+Weex.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <SocketRocket/SRWebSocket.h>
-#import <WeexSDK/WXWebSocketHandler.h>
-#import <objc/runtime.h>
-
-@interface SRWebSocket (Weex)
-
-@property (nonatomic, copy) NSString *wx_Identifier;
-@property (nonatomic, weak) id<WXWebSocketDelegate> wx_WebSocketDelegate;
-
-@end
diff --git a/ios/playground/WeexDemo/Websocket/SRWebSocket+Weex.m b/ios/playground/WeexDemo/Websocket/SRWebSocket+Weex.m
deleted file mode 100644
index afdbcfa..0000000
--- a/ios/playground/WeexDemo/Websocket/SRWebSocket+Weex.m
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import "SRWebSocket+Weex.h"
-static char wx_IdentifierKey;
-static char wx_WebSocketDelegateKey;
-
-
-@implementation SRWebSocket (Weex)
-
--(void)setWx_Identifier:(NSString *)wx_Identifier
-{
- objc_setAssociatedObject(self, &wx_IdentifierKey, wx_Identifier, OBJC_ASSOCIATION_COPY);
-}
-
--(NSString *)wx_Identifier
-{
- return objc_getAssociatedObject(self, &wx_IdentifierKey);
-}
-
--(void)setWx_WebSocketDelegate:(id<WXWebSocketDelegate>)wx_WebSocketDelegate
-{
- objc_setAssociatedObject(self, &wx_WebSocketDelegateKey, wx_WebSocketDelegate, OBJC_ASSOCIATION_COPY);
-}
-
--(NSString *)wx_WebSocketDelegate
-{
- return objc_getAssociatedObject(self, &wx_WebSocketDelegateKey);
-}
-
-@end
diff --git a/ios/playground/WeexDemo/Websocket/WXWebSocketDefaultImpl.h b/ios/playground/WeexDemo/Websocket/WXWebSocketDefaultImpl.h
deleted file mode 100644
index 620e71a..0000000
--- a/ios/playground/WeexDemo/Websocket/WXWebSocketDefaultImpl.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <Foundation/Foundation.h>
-#import <WeexSDK/WXWebSocketHandler.h>
-
-@interface WXWebSocketDefaultImpl : NSObject<WXWebSocketHandler>
-
-@end
diff --git a/ios/playground/WeexDemo/Websocket/WXWebSocketDefaultImpl.m b/ios/playground/WeexDemo/Websocket/WXWebSocketDefaultImpl.m
deleted file mode 100644
index 60c9d34..0000000
--- a/ios/playground/WeexDemo/Websocket/WXWebSocketDefaultImpl.m
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import "WXWebSocketDefaultImpl.h"
-#import <SocketRocket/SRWebSocket.h>
-#import "SRWebSocket+Weex.h"
-
-@interface WXWebSocketDefaultImpl()<SRWebSocketDelegate>
-
-@end
-
-@implementation WXWebSocketDefaultImpl
-{
- NSMutableDictionary<NSString *, SRWebSocket *> *_webSockets;
-}
-
-#pragma mark - WXWebSocketHandler
-- (void)open:(NSString *)url protocol:(NSString *)protocol identifier:(NSString *)identifier withDelegate:(id<WXWebSocketDelegate>)delegate
-{
- if(!_webSockets)
- {
- _webSockets = [NSMutableDictionary new];
- }
- if([_webSockets objectForKey:identifier]){
- SRWebSocket *webSocket = [_webSockets objectForKey:identifier];
- webSocket.delegate = nil;
- [webSocket close];
-
- }
- NSArray *protols;
- if([protocol length]>0){
- protols = [NSArray arrayWithObject:protocol];
- }
- SRWebSocket *webSocket = [[SRWebSocket alloc] initWithURL:[NSURL URLWithString:url] protocols:protols];
- webSocket.delegate = self;
- [webSocket open];
- webSocket.wx_Identifier = identifier;
- webSocket.wx_WebSocketDelegate = delegate;
- [_webSockets setObject:webSocket forKey:identifier];
-}
-
-- (void)send:(id)identifier data:(NSString *)data
-{
- SRWebSocket *webSocket = [_webSockets objectForKey:identifier];
- if(webSocket) {
- [webSocket send:data];
- }
-}
-
-- (void)close:(NSString *)identifier
-{
- SRWebSocket *webSocket = [_webSockets objectForKey:identifier];
- if(webSocket) {
- [webSocket close];
- }
-}
-
-- (void)close:(NSString *)identifier code:(NSInteger)code reason:(NSString *)reason
-{
- SRWebSocket *webSocket = [_webSockets objectForKey:identifier];
- if(webSocket) {
- [webSocket closeWithCode:code reason:reason];
- }
-}
-
-- (void)clear:(NSString *)identifier
-{
- SRWebSocket *webSocket = [_webSockets objectForKey:identifier];
- if(webSocket) {
- webSocket.delegate = nil;
- [webSocket close];
- [_webSockets removeObjectForKey:identifier];
- }
-}
-
-#pragma mark -SRWebSocketDelegate
-- (void)webSocketDidOpen:(SRWebSocket *)webSocket;
-{
- if (webSocket.wx_WebSocketDelegate && [webSocket.wx_WebSocketDelegate respondsToSelector:@selector(didOpen)]) {
- [webSocket.wx_WebSocketDelegate didOpen];
- }
-}
-
-- (void)webSocket:(SRWebSocket *)webSocket didFailWithError:(NSError *)error;
-{
- if (webSocket.wx_WebSocketDelegate && [webSocket.wx_WebSocketDelegate respondsToSelector:@selector(didFailWithError:)]) {
- [webSocket.wx_WebSocketDelegate didFailWithError:error];
- }
-}
-
-- (void)webSocket:(SRWebSocket *)webSocket didReceiveMessage:(id)message;
-{
- if (webSocket.wx_WebSocketDelegate && [webSocket.wx_WebSocketDelegate respondsToSelector:@selector(didReceiveMessage:)]) {
- [webSocket.wx_WebSocketDelegate didReceiveMessage:message];
- }
-}
-
-- (void)webSocket:(SRWebSocket *)webSocket didCloseWithCode:(NSInteger)code reason:(NSString *)reason wasClean:(BOOL)wasClean;
-{
- if (webSocket.wx_WebSocketDelegate && [webSocket.wx_WebSocketDelegate respondsToSelector:@selector(didCloseWithCode:reason:wasClean:)]) {
- [webSocket.wx_WebSocketDelegate didCloseWithCode:code reason:reason wasClean:wasClean];
- }
-}
-@end
diff --git a/ios/playground/WeexDemo/debug/DebugAnalyzer.h b/ios/playground/WeexDemo/debug/DebugAnalyzer.h
deleted file mode 100644
index 99838d0..0000000
--- a/ios/playground/WeexDemo/debug/DebugAnalyzer.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <WeexSDK/WeexSDK.h>
-
-
-@interface DebugAnalyzer :NSObject<WXAnalyzerProtocol>
-@end
diff --git a/ios/playground/WeexDemo/debug/DebugAnzlyzer.m b/ios/playground/WeexDemo/debug/DebugAnzlyzer.m
deleted file mode 100644
index 0a84bb8..0000000
--- a/ios/playground/WeexDemo/debug/DebugAnzlyzer.m
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <Foundation/Foundation.h>
-#import <WeexSDK/WeexSDK.h>
-#import "DebugAnalyzer.h"
-
-
-@implementation DebugAnalyzer
-- (void)transfer:(NSDictionary *) value
-{
- NSLog(@"DebugAnalyzer value : %@",value);
-}
-@end
diff --git a/ios/playground/WeexDemo/debug/WXATLoggerPlugin.h b/ios/playground/WeexDemo/debug/WXATLoggerPlugin.h
deleted file mode 100644
index 1bfbffa..0000000
--- a/ios/playground/WeexDemo/debug/WXATLoggerPlugin.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <Foundation/Foundation.h>
-#import <ATSDK/ATPluginProtocol.h>
-
-@interface WXATLoggerPlugin : NSObject<ATPluginProtocol>
-
-@end
diff --git a/ios/playground/WeexDemo/debug/WXATLoggerPlugin.m b/ios/playground/WeexDemo/debug/WXATLoggerPlugin.m
deleted file mode 100644
index 66eaf81..0000000
--- a/ios/playground/WeexDemo/debug/WXATLoggerPlugin.m
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import "WXATLoggerPlugin.h"
-#import <WeexSDK/WXSDKEngine.h>
-
-@implementation WXATLoggerPlugin
-
-- (void)pluginDidLoadWithArgs:(NSArray *)args
-{
-
-}
-
-- (void)pluginWillOpenInContainer:(UIViewController *)container withArg:(NSArray *)args
-{
- NSURL *URL = [NSURL URLWithString:@"http://127.0.0.1:8687/launchDebugger"];
- NSURLRequest *request = [NSURLRequest requestWithURL:URL];
-
- NSURLSession *session = [NSURLSession sharedSession];
- NSURLSessionDataTask *task = [session dataTaskWithRequest:request
- completionHandler:
- ^(NSData *data, NSURLResponse *response, NSError *error) {
- // ...
- }];
-
- [task resume];
-
- dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
- [WXSDKEngine connectDebugServer:@"ws://127.0.0.1:8687/debugger/0/renderer"];
- });
-}
-
-- (void)pluginWillClose
-{
-
-}
-
-- (void)pluginDidUnload
-{
-
-}
-
-- (CGRect)wantReactArea
-{
- return CGRectZero;
-}
-
-
-@end
diff --git a/ios/playground/WeexDemo/debug/WXATViewHierarchyPlugin.h b/ios/playground/WeexDemo/debug/WXATViewHierarchyPlugin.h
deleted file mode 100644
index 0609e42..0000000
--- a/ios/playground/WeexDemo/debug/WXATViewHierarchyPlugin.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-//#import <Foundation/Foundation.h>
-//#import <ATSDK/ATPluginProtocol.h>
-//
-//@interface WXATViewHierarchyPlugin : NSObject<ATPluginProtocol>
-//
-//@end
diff --git a/ios/playground/WeexDemo/debug/WXATViewHierarchyPlugin.m b/ios/playground/WeexDemo/debug/WXATViewHierarchyPlugin.m
deleted file mode 100644
index 6c5fa27..0000000
--- a/ios/playground/WeexDemo/debug/WXATViewHierarchyPlugin.m
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-//#import "WXATViewHierarchyPlugin.h"
-//#import <WeexSDK/WXViewHierarchy.h>
-//
-//@implementation WXATViewHierarchyPlugin
-//{
-// WXViewHierarchy *_hierarchy;
-//}
-//
-//- (void)pluginDidLoadWithArgs:(NSArray *)args
-//{
-// _hierarchy = [[WXViewHierarchy alloc] init];
-// _hierarchy.hidden = YES;
-//}
-//
-//- (void)pluginWillOpenInContainer:(UIViewController *)container withArg:(NSArray *)args
-//{
-// [_hierarchy show];
-//}
-//
-//- (void)pluginWillClose
-//{
-// [_hierarchy hide];
-//}
-//
-//- (void)pluginDidUnload
-//{
-// _hierarchy = nil;
-//}
-//
-//- (CGRect)wantReactArea
-//{
-// return CGRectZero;
-//}
-//
-//@end
diff --git a/ios/playground/WeexDemo/extend/component/WXSelectComponent.h b/ios/playground/WeexDemo/extend/component/WXSelectComponent.h
deleted file mode 100644
index a50bd5b..0000000
--- a/ios/playground/WeexDemo/extend/component/WXSelectComponent.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <UIKit/UIKit.h>
-#import <WeexSDK/WXComponent.h>
-
-@interface WXSelectComponent : WXComponent <UIPickerViewDataSource, UIPickerViewDelegate>
-
-@end
diff --git a/ios/playground/WeexDemo/extend/component/WXSelectComponent.m b/ios/playground/WeexDemo/extend/component/WXSelectComponent.m
deleted file mode 100644
index 20bb348..0000000
--- a/ios/playground/WeexDemo/extend/component/WXSelectComponent.m
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import "WXSelectComponent.h"
-#import "WXUtility.h"
-#import "WXComponent+Events.h"
-
-@interface WXSelectComponent()
-
-@property (nonatomic, strong) UITapGestureRecognizer *tap;
-@property (nonatomic, strong) UIPickerView *pickerView;
-@property (nonatomic, strong) NSArray *options;
-@property (nonatomic, assign) NSInteger selectIndex;
-@property (nonatomic, assign) BOOL disabled;
-
-@end
-
-@implementation WXSelectComponent
-- (instancetype)initWithRef:(NSString *)ref type:(NSString *)type styles:(NSDictionary *)styles attributes:(NSDictionary *)attributes events:(NSArray *)events weexInstance:(WXSDKInstance *)weexInstance
-{
- self = [super initWithRef:ref type:type styles:styles attributes:attributes events:events weexInstance:weexInstance];
- if (self) {
- _tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(popupPicker)];
- _tap.delegate = self;
-
- if (attributes[@"options"]) {
- _options = [attributes[@"options"] componentsSeparatedByString:@","];
- }
- if (attributes[@"selectIndex"]) {
- _selectIndex = [attributes[@"selectIndex"] integerValue];
- }
- if (attributes[@"disabled"]) {
- _disabled = [attributes[@"disabled"] boolValue];
- }
-
- if (styles[@""]) {
- // setting style when init
- }
-
- UIWindow * window = [UIApplication sharedApplication].keyWindow;
- CGSize windowSize = window.rootViewController.view.frame.size;
- CGFloat pickerViewHeight = 200.0;
- _pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, windowSize.width, pickerViewHeight)];
- [_pickerView setBackgroundColor:[UIColor redColor]];
- _pickerView.dataSource = self;
- _pickerView.delegate = self;
- }
-
- return self;
-}
-
-- (void)viewDidLoad
-{
- [_pickerView selectRow:_selectIndex inComponent:0 animated:YES];
- // show selected item
- _pickerView.showsSelectionIndicator=YES;
-}
-
-- (void)viewWillUnload
-{
-}
-
-- (UIView *)loadView {
-
- return _pickerView;
-}
-
-- (void)updateAttributes:(NSDictionary *)attributes
-{
- if (attributes[@"options"]) {
- _options = [attributes[@"options"] componentsSeparatedByString:@","];
- }
- if (attributes[@"selectIndex"]) {
- _selectIndex = [attributes[@"selectIndex"] integerValue];
- }
- if (attributes[@"disabled"]) {
- _disabled = [attributes[@"disabled"] boolValue];
- }
- [_pickerView reloadAllComponents];
-}
-
-- (void)updateStyles:(NSDictionary *)styles
-{
-
-}
-
-#pragma mark - action
-- (void)popupPicker
-{
- if (_disabled)
- return;
-
- [self fireEvent:@"focus" params:nil];
-}
-
-- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
-{
- if (gestureRecognizer == _tap)
- return YES;
-
- if (otherGestureRecognizer == _tap)
- return YES;
-
- return [super gestureRecognizer:gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:otherGestureRecognizer];
-}
-
-#pragma mark - pickerView delegate
-- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
- return 1;
-}
-
-
-- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
- return [_options count];
-}
-
-- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component {
-
- return self.calculatedFrame.size.width;
-}
-
-- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
-{
- [self fireEvent:@"change" params:@{@"index":[NSNumber numberWithInteger:row],
- @"value":[_options objectAtIndex:row]}];
-}
-
--(NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
-{
- return [_options objectAtIndex:row];
-}
-
-@end
diff --git a/ios/playground/WeexDemo/extend/handler/WXApmGeneratorImpl.h b/ios/playground/WeexDemo/extend/handler/WXApmGeneratorImpl.h
deleted file mode 100644
index c3255e5..0000000
--- a/ios/playground/WeexDemo/extend/handler/WXApmGeneratorImpl.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <Foundation/Foundation.h>
-#import "WXApmProtocol.h"
-
-@interface WXApmGeneratorImpl : NSObject <WXApmGeneratorProtocol>
-
-@end
diff --git a/ios/playground/WeexDemo/extend/handler/WXApmGeneratorImpl.m b/ios/playground/WeexDemo/extend/handler/WXApmGeneratorImpl.m
deleted file mode 100644
index 64c8e25..0000000
--- a/ios/playground/WeexDemo/extend/handler/WXApmGeneratorImpl.m
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import "WXApmGeneratorImpl.h"
-#import "WXApmImpl.h"
-
-@implementation WXApmGeneratorImpl
-
-- (id<WXApmProtocol>)gengratorApmInstance:(NSString *) type
-{
- id<WXApmProtocol> instance = [[WXApmImpl alloc] init];
- return instance;
-}
-
-@end
diff --git a/ios/playground/WeexDemo/extend/handler/WXApmImpl.h b/ios/playground/WeexDemo/extend/handler/WXApmImpl.h
deleted file mode 100644
index 5af8752..0000000
--- a/ios/playground/WeexDemo/extend/handler/WXApmImpl.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <Foundation/Foundation.h>
-#import "WXApmProtocol.h"
-
-@interface WXApmImpl : NSObject <WXApmProtocol>
-
-@end
diff --git a/ios/playground/WeexDemo/extend/handler/WXApmImpl.m b/ios/playground/WeexDemo/extend/handler/WXApmImpl.m
deleted file mode 100644
index 214fb80..0000000
--- a/ios/playground/WeexDemo/extend/handler/WXApmImpl.m
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import "WXApmImpl.h"
-#import "WXUtility.h"
-#import "WXComponentManager.h"
-
-@interface WXApmImpl()
-@property(nonatomic,strong) NSMutableDictionary<NSString*,NSNumber*>* stageMap;
-@property(nonatomic,strong) NSMutableDictionary<NSString*,id>* propertyMap;
-@property(nonatomic,strong) NSMutableDictionary<NSString*,NSNumber*>* statisticMap;
-@property(nonatomic,strong) NSMutableDictionary<NSString*,id>* eventMap;
-
-@end
-
-@implementation WXApmImpl
-
-- (instancetype)init
-{
- self = [super init];
- if (self) {
- _stageMap = [[NSMutableDictionary alloc] init];
- _propertyMap = [[NSMutableDictionary alloc] init];
- _statisticMap = [[NSMutableDictionary alloc] init];
- _eventMap = [[NSMutableDictionary alloc] init];
- }
- return self;
-}
-
-
-- (void) onStart:(NSString *)instanceId topic:(NSString *)topic
-{
-
-}
-
-- (void) onEnd
-{
- __weak typeof(self) weakSelf = self;
- WXPerformBlockOnComponentThread(^{
- [weakSelf _printApmInfo];
- });
-
-}
-
-- (void) onEvent:(NSString *)name withValue:(id)value
-{
- __weak typeof(self) weakSelf = self;
- WXPerformBlockOnComponentThread(^{
- [weakSelf.eventMap setObject:value forKey:name];
- });
-}
-
-- (void) onStage:(NSString *)name withValue:(long)timestamp
-{
- __weak typeof(self) weakSelf = self;
- WXPerformBlockOnComponentThread(^{
- [weakSelf.stageMap setObject:[NSNumber numberWithLong:timestamp] forKey:name];
- });
-}
-
-- (void) addProperty:(NSString *)name withValue:(id)value
-{
- __weak typeof(self) weakSelf = self;
- WXPerformBlockOnComponentThread(^{
- [weakSelf.propertyMap setObject:value forKey:name];
- });
-}
-
-- (void) addStatistic:(NSString *)name withValue:(double)value
-{
- __weak typeof(self) weakSelf = self;
- WXPerformBlockOnComponentThread(^{
- [weakSelf.statisticMap setObject:[NSNumber numberWithDouble:value] forKey:name];
- });
-}
-
-- (void) addBiz:(NSString *)bizID withValue:(NSDictionary *)properties
-{
-
-}
-
-- (void) addBizAbTest:(NSString *)bizID withValue:(NSDictionary *)abTest
-{
-
-}
-
-- (void) addBizStage:(NSString *)bizID withValue:(NSDictionary *)stage
-{
-
-}
-
-- (void) onSubProcedureBegin:(NSString *)subProcedureName
-{
-
-}
-
-- (void) onSubProcedureEndFailed:(NSString *)subProcedureName
-{
-
-}
-
-- (void) onSubProcedureEndSucceed:(NSString *)subProcedureName
-{
-
-}
-
-- (void)pauseApmRecord {
-
-}
-
-
-- (void)resumeApmRecord {
-
-}
-
-
-- (void) _printApmInfo
-{
- NSDictionary* InfoMap = @{
- @"stage":self.stageMap,
- @"property":self.propertyMap,
- @"statistic":self.statisticMap,
- @"event":self.eventMap
- };
- NSString* jsonStr = [WXUtility JSONString:InfoMap];
- NSLog(@"wxApmForInstance: %@",jsonStr);
-
- NSNumber* stageRenderOrigin = self.stageMap[KEY_PAGE_STAGES_RENDER_ORGIGIN];
- NSNumber* stageInteraction = self.stageMap[KEY_PAGE_STAGES_INTERACTION];
- NSLog(@"wxApmForInstance interaction time: %lld", [stageInteraction longLongValue] - [stageRenderOrigin longLongValue]);
-}
-
-@end
diff --git a/ios/playground/WeexDemo/extend/handler/WXImgLoaderDefaultImpl.h b/ios/playground/WeexDemo/extend/handler/WXImgLoaderDefaultImpl.h
deleted file mode 100644
index cfc354c..0000000
--- a/ios/playground/WeexDemo/extend/handler/WXImgLoaderDefaultImpl.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <Foundation/Foundation.h>
-#import <WeexSDK/WXImgLoaderProtocol.h>
-
-@interface WXImgLoaderDefaultImpl : NSObject<WXImgLoaderProtocol, WXModuleProtocol>
-@end
diff --git a/ios/playground/WeexDemo/extend/handler/WXImgLoaderDefaultImpl.m b/ios/playground/WeexDemo/extend/handler/WXImgLoaderDefaultImpl.m
deleted file mode 100644
index 13836b3..0000000
--- a/ios/playground/WeexDemo/extend/handler/WXImgLoaderDefaultImpl.m
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import "WXImgLoaderDefaultImpl.h"
-#import <SDWebImage/UIImageView+WebCache.h>
-#import <WeexSDK/WXLog.h>
-#import <WeexSDK/WXSDKManager.h>
-
-#define MIN_IMAGE_WIDTH 36
-#define MIN_IMAGE_HEIGHT 36
-
-#if OS_OBJECT_USE_OBJC
-#undef WXDispatchQueueRelease
-#undef WXDispatchQueueSetterSementics
-#define WXDispatchQueueRelease(q)
-#define WXDispatchQueueSetterSementics strong
-#else
-#undef WXDispatchQueueRelease
-#undef WXDispatchQueueSetterSementics
-#define WXDispatchQueueRelease(q) (dispatch_release(q))
-#define WXDispatchQueueSetterSementics assign
-#endif
-
-@interface WXImgLoaderDefaultImpl()
-
-@property (WXDispatchQueueSetterSementics, nonatomic) dispatch_queue_t ioQueue;
-
-@end
-
-@implementation WXImgLoaderDefaultImpl
-
-#pragma mark -
-#pragma mark WXImgLoaderProtocol
-
-- (id<WXImageOperationProtocol>)downloadImageWithURL:(NSString *)url imageFrame:(CGRect)imageFrame userInfo:(NSDictionary *)userInfo completed:(void(^)(UIImage *image, NSError *error, BOOL finished))completedBlock
-{
- [self _recoredImgLoad:url options:userInfo];
- if ([url hasPrefix:@"//"]) {
- url = [@"http:" stringByAppendingString:url];
- }
- return (id<WXImageOperationProtocol>)[[SDWebImageManager sharedManager] downloadImageWithURL:[NSURL URLWithString:url] options:0 progress:^(NSInteger receivedSize, NSInteger expectedSize) {
-
- } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
- if (completedBlock) {
- completedBlock(image, error, finished);
- }
- [self _recoredFinish:imageURL error:error loadOptions:userInfo];
- }];
-}
-
-- (void)setImageViewWithURL:(UIImageView *)imageView url:(NSURL *)url placeholderImage:(UIImage *)placeholder options:(NSDictionary *)options progress:(void (^)(NSInteger, NSInteger))progressBlock completed:(void (^)(UIImage *, NSError *, WXImageLoaderCacheType, NSURL *))completedBlock
-{
- [self _recoredImgLoad:url.absoluteString options:options];
- SDWebImageOptions sdWebimageOption = SDWebImageRetryFailed;
- if (options && options[@"sdWebimageOption"]) {
- [options[@"sdWebimageOption"] intValue];
- }
-
- [imageView sd_setImageWithURL:url placeholderImage:placeholder options:sdWebimageOption progress:^(NSInteger receivedSize, NSInteger expectedSize) {
- if (progressBlock) {
- progressBlock(receivedSize, expectedSize);
- }
- } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
- if (completedBlock) {
- completedBlock(image, error, (WXImageLoaderCacheType)cacheType, imageURL);
- }
- [self _recoredFinish:imageURL error:error loadOptions:options];
- }];
-}
-
-- (void) _recoredImgLoad:(NSString *)url options:(NSDictionary *)options
-{
- if (nil == url) {
- return;
- }
- NSString* instanceId = [options objectForKey:@"instanceId"];
- if (nil == instanceId) {
- WXLogWarning(@"please set instanceId in userInfo,for url %@:",url);
- return;
- }
- WXSDKInstance* instance =[WXSDKManager instanceForID:instanceId];
- if (nil == instance) {
- return;
- }
- [instance.apmInstance updateDiffStats:KEY_PAGE_STATS_IMG_LOAD_NUM withDiffValue:1];
-}
-
-- (void) _recoredFinish:(NSURL*)imgUrl error:(NSError*)error loadOptions:(NSDictionary*)options
-{
- NSString* instanceId = [options objectForKey:@"instanceId"];
- if (nil == instanceId) {
- WXLogWarning(@"please set instanceId in userInfo,for url %@:",imgUrl.absoluteString);
- return;
- }
- WXSDKInstance* instance =[WXSDKManager instanceForID:instanceId];
- if (nil == instance) {
- return;
- }
- bool loadSucceed = error == nil;
- [instance.apmInstance actionImgLoadResult:loadSucceed withErrorCode:nil];
-}
-
-@end
diff --git a/ios/playground/WeexDemo/extend/module/WXEventModule.h b/ios/playground/WeexDemo/extend/module/WXEventModule.h
deleted file mode 100644
index 2fec4ec..0000000
--- a/ios/playground/WeexDemo/extend/module/WXEventModule.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <Foundation/Foundation.h>
-#import <WeexSDK/WXEventModuleProtocol.h>
-#import <WeexSDK/WXModuleProtocol.h>
-
-@interface WXEventModule : NSObject <WXEventModuleProtocol, WXModuleProtocol>
-
-@end
diff --git a/ios/playground/WeexDemo/extend/module/WXEventModule.m b/ios/playground/WeexDemo/extend/module/WXEventModule.m
deleted file mode 100644
index 1cebd62..0000000
--- a/ios/playground/WeexDemo/extend/module/WXEventModule.m
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import "WXEventModule.h"
-#import "WXDemoViewController.h"
-#import "WXScannerVC.h"
-#import <WeexSDK/WeexSDK.h>
-
-@implementation WXEventModule
-
-@synthesize weexInstance;
-
-WX_EXPORT_METHOD(@selector(openURL:))
-
-WX_EXPORT_METHOD(@selector(fireNativeGlobalEvent:callback:))
-
-- (void)openURL:(NSString *)url
-{
- NSString *newURL = url;
- if ([url hasPrefix:@"//"]) {
- newURL = [NSString stringWithFormat:@"http:%@", url];
- } else if ([url hasPrefix:@"weex://go/scan"]){
- WXScannerVC * sannerVC = [WXScannerVC new];
- [[weexInstance.viewController navigationController] pushViewController:sannerVC animated:YES];
- return;
- } else if (![url hasPrefix:@"http"]) {
- // relative path
- newURL = [NSURL URLWithString:url relativeToURL:weexInstance.scriptURL].absoluteString;
- }
-
- UIViewController *controller = [[WXDemoViewController alloc] init];
- ((WXDemoViewController *)controller).url = [NSURL URLWithString:newURL];
-
- [[weexInstance.viewController navigationController] pushViewController:controller animated:YES];
-}
-
-
-/**
- a test method for macaca case, you can fire globalEvent when download finish、device shaked and so on.
- @param event event name
- */
-- (void)fireNativeGlobalEvent:(NSString *)event callback:(WXKeepAliveCallback)callback
-{
- [weexInstance fireGlobalEvent:event params:@{@"eventParam":@"eventValue"}];
- if (callback) {
- NSDictionary * result = @{@"ok": @true};
- callback(result,false);
- }
-}
-
-@end
-
diff --git a/ios/playground/WeexDemo/extend/module/WXTitleBarModule.h b/ios/playground/WeexDemo/extend/module/WXTitleBarModule.h
deleted file mode 100644
index 057c618..0000000
--- a/ios/playground/WeexDemo/extend/module/WXTitleBarModule.h
+++ /dev/null
@@ -1,14 +0,0 @@
-//
-// WXTitleBarModule.h
-// WeexDemo
-//
-// Created by zifan.zx on 2018/1/15.
-// Copyright © 2018年 taobao. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-#import <WeexSDK/WeexSDK.h>
-
-@interface WXTitleBarModule : NSObject<WXModuleProtocol>
-
-@end
diff --git a/ios/playground/WeexDemo/extend/module/WXTitleBarModule.m b/ios/playground/WeexDemo/extend/module/WXTitleBarModule.m
deleted file mode 100644
index 09c0182..0000000
--- a/ios/playground/WeexDemo/extend/module/WXTitleBarModule.m
+++ /dev/null
@@ -1,48 +0,0 @@
-//
-// WXTitleBarModule.m
-// WeexDemo
-//
-// Created by zifan.zx on 2018/1/15.
-// Copyright © 2018年 taobao. All rights reserved.
-//
-
-#import "WXTitleBarModule.h"
-#import "WXDemoViewController.h"
-
-@implementation WXTitleBarModule
-@synthesize weexInstance;
-
-WX_EXPORT_METHOD(@selector(setTitle:))
-WX_EXPORT_METHOD(@selector(showTitleBar:))
-WX_EXPORT_METHOD(@selector(setStyle:))
-
-- (void)setTitle:(NSString*)title
-{
- if (title) {
- [weexInstance.viewController.navigationItem setTitle:title];
- }
-}
-
-- (void)setStyle:(NSDictionary*)styles
-{
- if (styles[@"backgroundColor"]) {
- weexInstance.viewController.navigationController.navigationBar.barTintColor = [WXConvert UIColor:styles[@"backgroundColor"]];
- }
- if (styles[@"foregroundColor"]) {
- weexInstance.viewController.navigationController.navigationBar.tintColor = [WXConvert UIColor:styles[@"foregroundColor"]];
- [weexInstance.viewController.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[WXConvert UIColor:styles[@"foregroundColor"]]}];
- }
-}
-
-- (void)dealloc
-{
- weexInstance.viewController.navigationController.navigationBar.tintColor = [UIColor whiteColor];
-}
-
-- (void)showTitleBar:(bool)show
-{
- [weexInstance.viewController.navigationController setNavigationBarHidden:!show];
- ((WXDemoViewController*)weexInstance.viewController).showNavigationBar = !show;
-}
-
-@end
diff --git a/ios/playground/WeexDemo/main.m b/ios/playground/WeexDemo/main.m
deleted file mode 100644
index f59fa14..0000000
--- a/ios/playground/WeexDemo/main.m
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <UIKit/UIKit.h>
-#import "AppDelegate.h"
-
-int main(int argc, char * argv[]) {
- @autoreleasepool {
- return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
- }
-}
diff --git a/ios/playground/WeexDemo/weex-icon.png b/ios/playground/WeexDemo/weex-icon.png
deleted file mode 100644
index 396b78f..0000000
Binary files a/ios/playground/WeexDemo/weex-icon.png and /dev/null differ
diff --git a/ios/playground/WeexDemoTests/Info.plist b/ios/playground/WeexDemoTests/Info.plist
deleted file mode 100644
index 57c21c9..0000000
--- a/ios/playground/WeexDemoTests/Info.plist
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>NSLocationWhenInUseUsageDescription</key>
- <string>$(PRODUCT_NAME) will access your location</string>
- <key>NSCameraUsageDescription</key>
- <string>$(PRODUCT_NAME) will access your camera</string>
- <key>CFBundleDevelopmentRegion</key>
- <string>en</string>
- <key>CFBundleExecutable</key>
- <string>$(EXECUTABLE_NAME)</string>
- <key>CFBundleIdentifier</key>
- <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundleName</key>
- <string>$(PRODUCT_NAME)</string>
- <key>CFBundlePackageType</key>
- <string>BNDL</string>
- <key>CFBundleShortVersionString</key>
- <string>1.0</string>
- <key>CFBundleSignature</key>
- <string>????</string>
- <key>CFBundleVersion</key>
- <string>1</string>
-</dict>
-</plist>
diff --git a/ios/playground/WeexDemoTests/WeexDemoTests.m b/ios/playground/WeexDemoTests/WeexDemoTests.m
deleted file mode 100644
index c143038..0000000
--- a/ios/playground/WeexDemoTests/WeexDemoTests.m
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <XCTest/XCTest.h>
-
-@interface WeexDemoTests : XCTestCase
-
-@end
-
-@implementation WeexDemoTests
-
-- (void)setUp {
- [super setUp];
- // Put setup code here. This method is called before the invocation of each test method in the class.
-}
-
-- (void)tearDown {
- // Put teardown code here. This method is called after the invocation of each test method in the class.
- [super tearDown];
-}
-
-- (void)testExample {
- // This is an example of a functional test case.
- // Use XCTAssert and related functions to verify your tests produce the correct results.
-}
-
-- (void)testPerformanceExample {
- // This is an example of a performance test case.
- [self measureBlock:^{
- // Put the code you want to measure the time of here.
- }];
-}
-
-@end
diff --git a/ios/playground/WeexUITestDemo-Info.plist b/ios/playground/WeexUITestDemo-Info.plist
deleted file mode 100644
index 42d0202..0000000
--- a/ios/playground/WeexUITestDemo-Info.plist
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>CFBundleDevelopmentRegion</key>
- <string>en</string>
- <key>CFBundleExecutable</key>
- <string>$(EXECUTABLE_NAME)</string>
- <key>CFBundleIdentifier</key>
- <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundleName</key>
- <string>$(PRODUCT_NAME)</string>
- <key>CFBundlePackageType</key>
- <string>APPL</string>
- <key>CFBundleShortVersionString</key>
- <string>99.0</string>
- <key>CFBundleSignature</key>
- <string>????</string>
- <key>CFBundleVersion</key>
- <string>10000</string>
- <key>LSRequiresIPhoneOS</key>
- <true/>
- <key>NSAppTransportSecurity</key>
- <dict>
- <key>NSAllowsArbitraryLoads</key>
- <true/>
- </dict>
- <key>UILaunchStoryboardName</key>
- <string>LaunchScreen</string>
- <key>UIRequiredDeviceCapabilities</key>
- <array>
- <string>armv7</string>
- </array>
- <key>UIStatusBarStyle</key>
- <string>UIStatusBarStyleLightContent</string>
- <key>UISupportedInterfaceOrientations</key>
- <array>
- <string>UIInterfaceOrientationPortrait</string>
- </array>
- <key>UISupportedInterfaceOrientations~ipad</key>
- <array>
- <string>UIInterfaceOrientationPortrait</string>
- <string>UIInterfaceOrientationPortraitUpsideDown</string>
- <string>UIInterfaceOrientationLandscapeLeft</string>
- <string>UIInterfaceOrientationLandscapeRight</string>
- </array>
- <key>UIViewControllerBasedStatusBarAppearance</key>
- <false/>
-</dict>
-</plist>
diff --git a/ios/playground/WeexUITestDemoUITests/Info.plist b/ios/playground/WeexUITestDemoUITests/Info.plist
deleted file mode 100644
index ba72822..0000000
--- a/ios/playground/WeexUITestDemoUITests/Info.plist
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>CFBundleDevelopmentRegion</key>
- <string>en</string>
- <key>CFBundleExecutable</key>
- <string>$(EXECUTABLE_NAME)</string>
- <key>CFBundleIdentifier</key>
- <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundleName</key>
- <string>$(PRODUCT_NAME)</string>
- <key>CFBundlePackageType</key>
- <string>BNDL</string>
- <key>CFBundleShortVersionString</key>
- <string>1.0</string>
- <key>CFBundleSignature</key>
- <string>????</string>
- <key>CFBundleVersion</key>
- <string>1</string>
-</dict>
-</plist>
diff --git a/ios/playground/WeexUITestDemoUITests/WeexUITestDemoUITests.m b/ios/playground/WeexUITestDemoUITests/WeexUITestDemoUITests.m
deleted file mode 100644
index cbeca46..0000000
--- a/ios/playground/WeexUITestDemoUITests/WeexUITestDemoUITests.m
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#import <XCTest/XCTest.h>
-
-@interface WeexUITestDemoUITests : XCTestCase
-
-@end
-
-@implementation WeexUITestDemoUITests
-
-- (void)setUp {
- [super setUp];
-
- // Put setup code here. This method is called before the invocation of each test method in the class.
-
- // In UI tests it is usually best to stop immediately when a failure occurs.
- self.continueAfterFailure = NO;
- // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
- [[[XCUIApplication alloc] init] launch];
-
- // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
-}
-
-- (void)tearDown {
- // Put teardown code here. This method is called after the invocation of each test method in the class.
- [super tearDown];
-}
-
-- (void)testExample {
- // Use recording to get started writing UI tests.
- // Use XCTAssert and related functions to verify your tests produce the correct results.
-}
-
-@end
diff --git a/ios/playground/bundlejs/about.weex.js b/ios/playground/bundlejs/about.weex.js
deleted file mode 100644
index c685047..0000000
--- a/ios/playground/bundlejs/about.weex.js
+++ /dev/null
@@ -1,3309 +0,0 @@
-// { "framework": "Vue" }
-"use weex:vue";
-
-/******/ (function(modules) { // webpackBootstrap
-/******/ // The module cache
-/******/ var installedModules = {};
-/******/
-/******/ // The require function
-/******/ function __webpack_require__(moduleId) {
-/******/
-/******/ // Check if module is in cache
-/******/ if(installedModules[moduleId]) {
-/******/ return installedModules[moduleId].exports;
-/******/ }
-/******/ // Create a new module (and put it into the cache)
-/******/ var module = installedModules[moduleId] = {
-/******/ i: moduleId,
-/******/ l: false,
-/******/ exports: {}
-/******/ };
-/******/
-/******/ // Execute the module function
-/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ // Flag the module as loaded
-/******/ module.l = true;
-/******/
-/******/ // Return the exports of the module
-/******/ return module.exports;
-/******/ }
-/******/
-/******/
-/******/ // expose the modules object (__webpack_modules__)
-/******/ __webpack_require__.m = modules;
-/******/
-/******/ // expose the module cache
-/******/ __webpack_require__.c = installedModules;
-/******/
-/******/ // define getter function for harmony exports
-/******/ __webpack_require__.d = function(exports, name, getter) {
-/******/ if(!__webpack_require__.o(exports, name)) {
-/******/ Object.defineProperty(exports, name, {
-/******/ configurable: false,
-/******/ enumerable: true,
-/******/ get: getter
-/******/ });
-/******/ }
-/******/ };
-/******/
-/******/ // getDefaultExport function for compatibility with non-harmony modules
-/******/ __webpack_require__.n = function(module) {
-/******/ var getter = module && module.__esModule ?
-/******/ function getDefault() { return module['default']; } :
-/******/ function getModuleExports() { return module; };
-/******/ __webpack_require__.d(getter, 'a', getter);
-/******/ return getter;
-/******/ };
-/******/
-/******/ // Object.prototype.hasOwnProperty.call
-/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ // __webpack_public_path__
-/******/ __webpack_require__.p = "";
-/******/
-/******/ // Load entry module and return exports
-/******/ return __webpack_require__(__webpack_require__.s = 38);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports) {
-
-// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
-var global = module.exports = typeof window != 'undefined' && window.Math == Math
- ? window : typeof self != 'undefined' && self.Math == Math ? self
- // eslint-disable-next-line no-new-func
- : Function('return this')();
-if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
-
-
-/***/ }),
-/* 1 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var anObject = __webpack_require__(10);
-var IE8_DOM_DEFINE = __webpack_require__(30);
-var toPrimitive = __webpack_require__(17);
-var dP = Object.defineProperty;
-
-exports.f = __webpack_require__(2) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
- anObject(O);
- P = toPrimitive(P, true);
- anObject(Attributes);
- if (IE8_DOM_DEFINE) try {
- return dP(O, P, Attributes);
- } catch (e) { /* empty */ }
- if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
- if ('value' in Attributes) O[P] = Attributes.value;
- return O;
-};
-
-
-/***/ }),
-/* 2 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// Thank's IE8 for his funny defineProperty
-module.exports = !__webpack_require__(11)(function () {
- return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
-});
-
-
-/***/ }),
-/* 3 */
-/***/ (function(module, exports) {
-
-var hasOwnProperty = {}.hasOwnProperty;
-module.exports = function (it, key) {
- return hasOwnProperty.call(it, key);
-};
-
-
-/***/ }),
-/* 4 */
-/***/ (function(module, exports) {
-
-var core = module.exports = { version: '2.5.7' };
-if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
-
-
-/***/ }),
-/* 5 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var dP = __webpack_require__(1);
-var createDesc = __webpack_require__(12);
-module.exports = __webpack_require__(2) ? function (object, key, value) {
- return dP.f(object, key, createDesc(1, value));
-} : function (object, key, value) {
- object[key] = value;
- return object;
-};
-
-
-/***/ }),
-/* 6 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// to indexed object, toObject with fallback for non-array-like ES3 strings
-var IObject = __webpack_require__(51);
-var defined = __webpack_require__(15);
-module.exports = function (it) {
- return IObject(defined(it));
-};
-
-
-/***/ }),
-/* 7 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var store = __webpack_require__(21)('wks');
-var uid = __webpack_require__(13);
-var Symbol = __webpack_require__(0).Symbol;
-var USE_SYMBOL = typeof Symbol == 'function';
-
-var $exports = module.exports = function (name) {
- return store[name] || (store[name] =
- USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
-};
-
-$exports.store = store;
-
-
-/***/ }),
-/* 8 */
-/***/ (function(module, exports) {
-
-module.exports = function (it) {
- return typeof it === 'object' ? it !== null : typeof it === 'function';
-};
-
-
-/***/ }),
-/* 9 */
-/***/ (function(module, exports) {
-
-module.exports = true;
-
-
-/***/ }),
-/* 10 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var isObject = __webpack_require__(8);
-module.exports = function (it) {
- if (!isObject(it)) throw TypeError(it + ' is not an object!');
- return it;
-};
-
-
-/***/ }),
-/* 11 */
-/***/ (function(module, exports) {
-
-module.exports = function (exec) {
- try {
- return !!exec();
- } catch (e) {
- return true;
- }
-};
-
-
-/***/ }),
-/* 12 */
-/***/ (function(module, exports) {
-
-module.exports = function (bitmap, value) {
- return {
- enumerable: !(bitmap & 1),
- configurable: !(bitmap & 2),
- writable: !(bitmap & 4),
- value: value
- };
-};
-
-
-/***/ }),
-/* 13 */
-/***/ (function(module, exports) {
-
-var id = 0;
-var px = Math.random();
-module.exports = function (key) {
- return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
-};
-
-
-/***/ }),
-/* 14 */
-/***/ (function(module, exports) {
-
-// 7.1.4 ToInteger
-var ceil = Math.ceil;
-var floor = Math.floor;
-module.exports = function (it) {
- return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
-};
-
-
-/***/ }),
-/* 15 */
-/***/ (function(module, exports) {
-
-// 7.2.1 RequireObjectCoercible(argument)
-module.exports = function (it) {
- if (it == undefined) throw TypeError("Can't call method on " + it);
- return it;
-};
-
-
-/***/ }),
-/* 16 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var global = __webpack_require__(0);
-var core = __webpack_require__(4);
-var ctx = __webpack_require__(47);
-var hide = __webpack_require__(5);
-var has = __webpack_require__(3);
-var PROTOTYPE = 'prototype';
-
-var $export = function (type, name, source) {
- var IS_FORCED = type & $export.F;
- var IS_GLOBAL = type & $export.G;
- var IS_STATIC = type & $export.S;
- var IS_PROTO = type & $export.P;
- var IS_BIND = type & $export.B;
- var IS_WRAP = type & $export.W;
- var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
- var expProto = exports[PROTOTYPE];
- var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
- var key, own, out;
- if (IS_GLOBAL) source = name;
- for (key in source) {
- // contains in native
- own = !IS_FORCED && target && target[key] !== undefined;
- if (own && has(exports, key)) continue;
- // export native or passed
- out = own ? target[key] : source[key];
- // prevent global pollution for namespaces
- exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
- // bind timers to global for call from export context
- : IS_BIND && own ? ctx(out, global)
- // wrap global constructors for prevent change them in library
- : IS_WRAP && target[key] == out ? (function (C) {
- var F = function (a, b, c) {
- if (this instanceof C) {
- switch (arguments.length) {
- case 0: return new C();
- case 1: return new C(a);
- case 2: return new C(a, b);
- } return new C(a, b, c);
- } return C.apply(this, arguments);
- };
- F[PROTOTYPE] = C[PROTOTYPE];
- return F;
- // make static versions for prototype methods
- })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
- // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
- if (IS_PROTO) {
- (exports.virtual || (exports.virtual = {}))[key] = out;
- // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
- if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
- }
- }
-};
-// type bitmap
-$export.F = 1; // forced
-$export.G = 2; // global
-$export.S = 4; // static
-$export.P = 8; // proto
-$export.B = 16; // bind
-$export.W = 32; // wrap
-$export.U = 64; // safe
-$export.R = 128; // real proto method for `library`
-module.exports = $export;
-
-
-/***/ }),
-/* 17 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// 7.1.1 ToPrimitive(input [, PreferredType])
-var isObject = __webpack_require__(8);
-// instead of the ES6 spec version, we didn't implement @@toPrimitive case
-// and the second argument - flag - preferred type is a string
-module.exports = function (it, S) {
- if (!isObject(it)) return it;
- var fn, val;
- if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
- if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
- if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
- throw TypeError("Can't convert object to primitive value");
-};
-
-
-/***/ }),
-/* 18 */
-/***/ (function(module, exports) {
-
-module.exports = {};
-
-
-/***/ }),
-/* 19 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// 19.1.2.14 / 15.2.3.14 Object.keys(O)
-var $keys = __webpack_require__(34);
-var enumBugKeys = __webpack_require__(22);
-
-module.exports = Object.keys || function keys(O) {
- return $keys(O, enumBugKeys);
-};
-
-
-/***/ }),
-/* 20 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var shared = __webpack_require__(21)('keys');
-var uid = __webpack_require__(13);
-module.exports = function (key) {
- return shared[key] || (shared[key] = uid(key));
-};
-
-
-/***/ }),
-/* 21 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var core = __webpack_require__(4);
-var global = __webpack_require__(0);
-var SHARED = '__core-js_shared__';
-var store = global[SHARED] || (global[SHARED] = {});
-
-(module.exports = function (key, value) {
- return store[key] || (store[key] = value !== undefined ? value : {});
-})('versions', []).push({
- version: core.version,
- mode: __webpack_require__(9) ? 'pure' : 'global',
- copyright: '© 2018 Denis Pushkarev (zloirock.ru)'
-});
-
-
-/***/ }),
-/* 22 */
-/***/ (function(module, exports) {
-
-// IE 8- don't enum bug keys
-module.exports = (
- 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
-).split(',');
-
-
-/***/ }),
-/* 23 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var def = __webpack_require__(1).f;
-var has = __webpack_require__(3);
-var TAG = __webpack_require__(7)('toStringTag');
-
-module.exports = function (it, tag, stat) {
- if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
-};
-
-
-/***/ }),
-/* 24 */
-/***/ (function(module, exports, __webpack_require__) {
-
-exports.f = __webpack_require__(7);
-
-
-/***/ }),
-/* 25 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var global = __webpack_require__(0);
-var core = __webpack_require__(4);
-var LIBRARY = __webpack_require__(9);
-var wksExt = __webpack_require__(24);
-var defineProperty = __webpack_require__(1).f;
-module.exports = function (name) {
- var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
- if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
-};
-
-
-/***/ }),
-/* 26 */
-/***/ (function(module, exports) {
-
-exports.f = {}.propertyIsEnumerable;
-
-
-/***/ }),
-/* 27 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.fetchNews = exports.fetchDoodle = exports.readAbout = exports.saveAbout = exports.fetchAbout = exports.readGuide = exports.saveGuide = exports.fetchGuide = exports.readExamples = exports.saveExamples = exports.fetchExamples = undefined;
-
-var _stringify = __webpack_require__(41);
-
-var _stringify2 = _interopRequireDefault(_stringify);
-
-var _typeof2 = __webpack_require__(28);
-
-var _typeof3 = _interopRequireDefault(_typeof2);
-
-exports.createLink = createLink;
-exports.createURL = createURL;
-exports.i18n = i18n;
-exports.parseLanguage = parseLanguage;
-exports.setLanguage = setLanguage;
-exports.clearStorageLanguage = clearStorageLanguage;
-exports.getStorageLanguage = getStorageLanguage;
-exports.getSystemLanguage = getSystemLanguage;
-exports.getLanguage = getLanguage;
-exports.jumpTo = jumpTo;
-exports.viewSource = viewSource;
-exports.setTitleBar = setTitleBar;
-exports.fetchData = fetchData;
-exports.saveData = saveData;
-exports.readData = readData;
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var stream = weex.requireModule('stream');
-var storage = weex.requireModule('storage');
-var navigator = weex.requireModule('navigator');
-
-var encoder = typeof encodeURIComponent === 'function' ? encodeURIComponent : typeof encodeURI === 'function' ? encodeURI : function (x) {
- return x;
-};
-
-function encodeParams(params) {
- if (!params || (typeof params === 'undefined' ? 'undefined' : (0, _typeof3.default)(params)) !== 'object') {
- return '';
- }
- var array = [];
- for (var key in params) {
- if (typeof params[key] === 'string') {
- array.push(encoder(key) + '=' + encoder(params[key]));
- }
- }
- return array.join('&');
-}
-
-function createLink(name) {
- var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- var args = [];
- for (var key in params) {
- if (typeof params[key] === 'string') {
- args.push(encoder(key) + '=' + encoder(params[key]));
- }
- }
- if (WXEnvironment.platform === 'Web') {
- args.unshift('page=' + name + '.web.js');
- return '/?' + args.join('&');
- }
- var base = getBaseURL();
- return '' + base + name + '.weex.js' + (args.length ? '?' + args.join('&') : '');
-}
-
-function createURL(hash, params) {
- if (WXEnvironment.platform === 'Web') {
- return 'http://dotwe.org/raw/htmlVue/' + hash;
- }
- var url = 'http://dotwe.org/raw/dist/' + hash + '.bundle.wx';
- var paramString = encodeParams(params);
- if (WXEnvironment.appName === 'TB') {
- return url + '?_wx_tpl=' + url + '&' + paramString;
- }
- if (WXEnvironment.appName === 'WXSample') {
- return url + '?' + paramString;
- }
- return url + '?wx_weex=true&' + paramString;
-}
-
-function getBaseURL() {
- var bundleUrl = weex.config.bundleUrl;
- var isAndroidAssets = bundleUrl.indexOf('your_current_IP') >= 0 || bundleUrl.indexOf('file://assets/') >= 0;
- var isiOSAssets = bundleUrl.indexOf('file:///') >= 0 && bundleUrl.indexOf('WeexDemo.app') > 0;
- if (isAndroidAssets) {
- return 'file://assets/';
- } else if (isiOSAssets) {
- // file:///var/mobile/Containers/Bundle/Application/{id}/WeexDemo.app/
- // file:///Users/{user}/Library/Developer/CoreSimulator/Devices/{id}/data/Containers/Bundle/Application/{id}/WeexDemo.app/
- return bundleUrl.substring(0, bundleUrl.lastIndexOf('/') + 1);
- }
- return '';
-}
-
-function i18n(text, language) {
- if (typeof text === 'string') {
- return text;
- }
- if (Object.prototype.toString.call(text) === '[object Object]') {
- var lang = this && this.language || language || 'en';
- return text[lang];
- }
-}
-
-var supportedLanguageRE = /(en|zh)\_?\w*/i;
-function parseLanguage(language) {
- var match = supportedLanguageRE.exec(language + '');
- if (match && match[1]) {
- return match[1];
- }
- return '';
-}
-
-function setLanguage(language) {
- var lang = parseLanguage(language);
- if (lang) {
- storage.setItem('WEEX_PLAYGROUND_LANGUAGE', lang);
- }
-}
-
-function clearStorageLanguage() {
- storage.removeItem('WEEX_PLAYGROUND_LANGUAGE');
-}
-
-function getStorageLanguage(done) {
- var fail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
-
- if (!(typeof done === 'undefined' ? 'undefined' : (0, _typeof3.default)(done)) === 'function') {
- return;
- }
- try {
- storage.getItem('WEEX_PLAYGROUND_LANGUAGE', function (event) {
- if (event.result === 'success') {
- var lang = parseLanguage(event.data);
- lang ? done(lang) : fail();
- } else {
- fail(event);
- }
- });
- } catch (err) {
- fail(err);
- }
-}
-
-function getSystemLanguage(done) {
- var fail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
-
- if (!(typeof done === 'undefined' ? 'undefined' : (0, _typeof3.default)(done)) === 'function') {
- return;
- }
- if (WXEnvironment.platform.toLowerCase() === 'web') {
- var lang = parseLanguage(window.navigator.language);
- lang ? done(lang) : fail();
- } else {
- try {
- var locale = weex.requireModule('locale') || weex.requireModule('local');
- var useSync = false;
- var resSync = locale.getLanguage(function (language) {
- var lang = parseLanguage(language);
- if (lang) {
- useSync || done(lang);
- } else {
- fail();
- }
- });
- var langSync = parseLanguage(resSync);
- if (langSync) {
- useSync = true;
- done(langSync);
- } else {
- fail();
- }
- } catch (e) {
- fail(e);
- }
- }
-}
-
-var languageRE = /.+[\?\&]{1}language=([\d\w]+)[\?\&]?.*/i;
-function getLanguage() {
- var done = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};
-
- var match = languageRE.exec(weex.config.bundleUrl || '');
- var lang = parseLanguage(match && match[1]);
- if (lang) {
- done(lang);
- } else {
- getStorageLanguage(done, function () {
- getSystemLanguage(done, function () {
- done('en');
- });
- });
- }
-}
-
-function jumpTo(url, title, lang) {
- getLanguage(function (language) {
- storage.setItem('CURRENT_DOCUMENT_URL', i18n(url, lang || language));
- navigator.push({
- url: createURL('bf0305c14b511b24a4e616f53926432b', { language: language, title: i18n(title, lang || language) })
- });
- });
-}
-
-function viewSource(hash) {
- getLanguage(function (language) {
- navigator.push({
- url: createURL('f6ce29faf686eabc38b410bf4828fa5a', { hash: hash, language: language })
- });
- });
-}
-
-function setTitleBar(options) {
- var language = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en';
-
- if (Object.prototype.toString.apply(options) !== '[object Object]') {
- return;
- }
- var titleBar = weex.requireModule('titleBar');
- if (options.color || options.backgroundColor) {
- try {
- titleBar.setStyle({
- foregroundColor: options.color || '#FFFFFF',
- backgroundColor: options.backgroundColor || '#00B4FF'
- });
- } catch (e) {}
- }
- var title = i18n(options.title, language);
- if (title) {
- try {
- titleBar.setTitle(title);
- } catch (e) {}
- }
-}
-
-var storageKeys = {
- doodle: 'WEEX_PLAYGROUND_APP_DOODLE',
- guide: 'WEEX_PLAYGROUND_APP_GUIDE',
- examples: 'WEEX_PLAYGROUND_APP_EXAMPLES',
- news: 'WEEX_PLAYGROUND_APP_NEWS',
- about: 'WEEX_PLAYGROUND_APP_ABOUT'
-};
-function fetchData(name) {
- var done = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
- var fail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};
-
- try {
- stream.fetch({
- url: 'http://dotwe.org/query/weex-playground-app',
- method: 'post',
- headers: {
- 'Content-Type': 'application/x-www-form-urlencoded'
- },
- type: 'json',
- body: 'name=' + name
- }, function (res) {
- if (res.ok && res.data && res.data.success) {
- done(res.data);
- } else {
- fail(res);
- }
- });
- } catch (err) {
- fail(err);
- }
-}
-function saveData(name, result) {
- var key = storageKeys[name];
- if (!key) return;
- if (result && (typeof result === 'undefined' ? 'undefined' : (0, _typeof3.default)(result)) === 'object') {
- result.timestamp = Date.now();
- storage.setItem(key, (0, _stringify2.default)(result));
- }
-}
-function readData(name) {
- var done = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
- var fail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};
-
- var key = storageKeys[name];
- if (!key) return fail();
- try {
- storage.getItem(key, function (event) {
- if (event.result === 'success') {
- var result = JSON.parse(event.data);
- if (result && Array.isArray(result[name])) {
- return done(result[name]);
- }
- }
- fail(event);
- });
- } catch (e) {
- fail(e);
- }
-}
-
-var fetchExamples = exports.fetchExamples = function fetchExamples() {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- return fetchData.apply(undefined, ['examples'].concat(args));
-};
-var saveExamples = exports.saveExamples = function saveExamples() {
- for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
- args[_key2] = arguments[_key2];
- }
-
- return saveData.apply(undefined, ['examples'].concat(args));
-};
-var readExamples = exports.readExamples = function readExamples() {
- for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
- args[_key3] = arguments[_key3];
- }
-
- return readData.apply(undefined, ['examples'].concat(args));
-};
-
-var fetchGuide = exports.fetchGuide = function fetchGuide() {
- for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
- args[_key4] = arguments[_key4];
- }
-
- return fetchData.apply(undefined, ['guide'].concat(args));
-};
-var saveGuide = exports.saveGuide = function saveGuide() {
- for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
- args[_key5] = arguments[_key5];
- }
-
- return saveData.apply(undefined, ['guide'].concat(args));
-};
-var readGuide = exports.readGuide = function readGuide() {
- for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
- args[_key6] = arguments[_key6];
- }
-
- return readData.apply(undefined, ['guide'].concat(args));
-};
-
-var fetchAbout = exports.fetchAbout = function fetchAbout() {
- for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
- args[_key7] = arguments[_key7];
- }
-
- return fetchData.apply(undefined, ['about'].concat(args));
-};
-var saveAbout = exports.saveAbout = function saveAbout() {
- for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
- args[_key8] = arguments[_key8];
- }
-
- return saveData.apply(undefined, ['about'].concat(args));
-};
-var readAbout = exports.readAbout = function readAbout() {
- for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
- args[_key9] = arguments[_key9];
- }
-
- return readData.apply(undefined, ['about'].concat(args));
-};
-
-var fetchDoodle = exports.fetchDoodle = function fetchDoodle() {
- for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {
- args[_key10] = arguments[_key10];
- }
-
- return fetchData.apply(undefined, ['doodle'].concat(args));
-};
-var fetchNews = exports.fetchNews = function fetchNews() {
- for (var _len11 = arguments.length, args = Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {
- args[_key11] = arguments[_key11];
- }
-
- return fetchData.apply(undefined, ['news'].concat(args));
-};
-
-/***/ }),
-/* 28 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-exports.__esModule = true;
-
-var _iterator = __webpack_require__(43);
-
-var _iterator2 = _interopRequireDefault(_iterator);
-
-var _symbol = __webpack_require__(62);
-
-var _symbol2 = _interopRequireDefault(_symbol);
-
-var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; };
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) {
- return typeof obj === "undefined" ? "undefined" : _typeof(obj);
-} : function (obj) {
- return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj);
-};
-
-/***/ }),
-/* 29 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var LIBRARY = __webpack_require__(9);
-var $export = __webpack_require__(16);
-var redefine = __webpack_require__(32);
-var hide = __webpack_require__(5);
-var Iterators = __webpack_require__(18);
-var $iterCreate = __webpack_require__(49);
-var setToStringTag = __webpack_require__(23);
-var getPrototypeOf = __webpack_require__(56);
-var ITERATOR = __webpack_require__(7)('iterator');
-var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
-var FF_ITERATOR = '@@iterator';
-var KEYS = 'keys';
-var VALUES = 'values';
-
-var returnThis = function () { return this; };
-
-module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
- $iterCreate(Constructor, NAME, next);
- var getMethod = function (kind) {
- if (!BUGGY && kind in proto) return proto[kind];
- switch (kind) {
- case KEYS: return function keys() { return new Constructor(this, kind); };
- case VALUES: return function values() { return new Constructor(this, kind); };
- } return function entries() { return new Constructor(this, kind); };
- };
- var TAG = NAME + ' Iterator';
- var DEF_VALUES = DEFAULT == VALUES;
- var VALUES_BUG = false;
- var proto = Base.prototype;
- var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
- var $default = $native || getMethod(DEFAULT);
- var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
- var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
- var methods, key, IteratorPrototype;
- // Fix native
- if ($anyNative) {
- IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
- if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
- // Set @@toStringTag to native iterators
- setToStringTag(IteratorPrototype, TAG, true);
- // fix for some old engines
- if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
- }
- }
- // fix Array#{values, @@iterator}.name in V8 / FF
- if (DEF_VALUES && $native && $native.name !== VALUES) {
- VALUES_BUG = true;
- $default = function values() { return $native.call(this); };
- }
- // Define iterator
- if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
- hide(proto, ITERATOR, $default);
- }
- // Plug for library
- Iterators[NAME] = $default;
- Iterators[TAG] = returnThis;
- if (DEFAULT) {
- methods = {
- values: DEF_VALUES ? $default : getMethod(VALUES),
- keys: IS_SET ? $default : getMethod(KEYS),
- entries: $entries
- };
- if (FORCED) for (key in methods) {
- if (!(key in proto)) redefine(proto, key, methods[key]);
- } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
- }
- return methods;
-};
-
-
-/***/ }),
-/* 30 */
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = !__webpack_require__(2) && !__webpack_require__(11)(function () {
- return Object.defineProperty(__webpack_require__(31)('div'), 'a', { get: function () { return 7; } }).a != 7;
-});
-
-
-/***/ }),
-/* 31 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var isObject = __webpack_require__(8);
-var document = __webpack_require__(0).document;
-// typeof document.createElement is 'object' in old IE
-var is = isObject(document) && isObject(document.createElement);
-module.exports = function (it) {
- return is ? document.createElement(it) : {};
-};
-
-
-/***/ }),
-/* 32 */
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__(5);
-
-
-/***/ }),
-/* 33 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
-var anObject = __webpack_require__(10);
-var dPs = __webpack_require__(50);
-var enumBugKeys = __webpack_require__(22);
-var IE_PROTO = __webpack_require__(20)('IE_PROTO');
-var Empty = function () { /* empty */ };
-var PROTOTYPE = 'prototype';
-
-// Create object with fake `null` prototype: use iframe Object with cleared prototype
-var createDict = function () {
- // Thrash, waste and sodomy: IE GC bug
- var iframe = __webpack_require__(31)('iframe');
- var i = enumBugKeys.length;
- var lt = '<';
- var gt = '>';
- var iframeDocument;
- iframe.style.display = 'none';
- __webpack_require__(55).appendChild(iframe);
- iframe.src = 'javascript:'; // eslint-disable-line no-script-url
- // createDict = iframe.contentWindow.Object;
- // html.removeChild(iframe);
- iframeDocument = iframe.contentWindow.document;
- iframeDocument.open();
- iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
- iframeDocument.close();
- createDict = iframeDocument.F;
- while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
- return createDict();
-};
-
-module.exports = Object.create || function create(O, Properties) {
- var result;
- if (O !== null) {
- Empty[PROTOTYPE] = anObject(O);
- result = new Empty();
- Empty[PROTOTYPE] = null;
- // add "__proto__" for Object.getPrototypeOf polyfill
- result[IE_PROTO] = O;
- } else result = createDict();
- return Properties === undefined ? result : dPs(result, Properties);
-};
-
-
-/***/ }),
-/* 34 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var has = __webpack_require__(3);
-var toIObject = __webpack_require__(6);
-var arrayIndexOf = __webpack_require__(52)(false);
-var IE_PROTO = __webpack_require__(20)('IE_PROTO');
-
-module.exports = function (object, names) {
- var O = toIObject(object);
- var i = 0;
- var result = [];
- var key;
- for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
- // Don't enum bug & hidden keys
- while (names.length > i) if (has(O, key = names[i++])) {
- ~arrayIndexOf(result, key) || result.push(key);
- }
- return result;
-};
-
-
-/***/ }),
-/* 35 */
-/***/ (function(module, exports) {
-
-var toString = {}.toString;
-
-module.exports = function (it) {
- return toString.call(it).slice(8, -1);
-};
-
-
-/***/ }),
-/* 36 */
-/***/ (function(module, exports) {
-
-exports.f = Object.getOwnPropertySymbols;
-
-
-/***/ }),
-/* 37 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
-var $keys = __webpack_require__(34);
-var hiddenKeys = __webpack_require__(22).concat('length', 'prototype');
-
-exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
- return $keys(O, hiddenKeys);
-};
-
-
-/***/ }),
-/* 38 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-__webpack_require__(39);
-
-var _About = __webpack_require__(73);
-
-var _About2 = _interopRequireDefault(_About);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-// show title bar
-try {
- var titleBar = weex.requireModule('titleBar');
- titleBar.showTitleBar(true);
-} catch (e) {}
-
-_About2.default.el = '#root';
-new Vue(_About2.default);
-
-/***/ }),
-/* 39 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var _mixin = __webpack_require__(40);
-
-var _mixin2 = _interopRequireDefault(_mixin);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-// use shared mixins
-Vue.mixin(_mixin2.default);
-
-/***/ }),
-/* 40 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-
-var _index = __webpack_require__(27);
-
-var utils = _interopRequireWildcard(_index);
-
-function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
-
-var storage = weex.requireModule('storage');
-
-exports.default = {
- filters: {
- i18n: utils.i18n,
- url: utils.createURL,
- link: utils.createLink
- },
- methods: {
- createLink: utils.createLink,
- createURL: utils.createURL,
- i18n: utils.i18n,
- getLanguage: utils.getLanguage,
- fetchData: utils.fetchData,
- saveData: utils.saveData,
- readData: utils.readData,
- jumpTo: utils.jumpTo
- },
- created: function created() {
- var _this = this;
-
- // get and set language
- utils.getLanguage(function (language) {
- _this.language = language;
- utils.setTitleBar(_this.navigationBarOptions, language);
- });
-
- // listen to the language change event
- var channel = new BroadcastChannel('language');
- channel.onmessage = function (event) {
- if (event.data && event.data.language) {
- _this.language = event.data.language;
- }
- };
- },
- beforeDestroy: function beforeDestroy() {
- storage.removeItem('CURRENT_DOCUMENT_URL');
- storage.removeItem('CURRENT_SOURCE_HASH');
- }
-};
-
-/***/ }),
-/* 41 */
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = { "default": __webpack_require__(42), __esModule: true };
-
-/***/ }),
-/* 42 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var core = __webpack_require__(4);
-var $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify });
-module.exports = function stringify(it) { // eslint-disable-line no-unused-vars
- return $JSON.stringify.apply($JSON, arguments);
-};
-
-
-/***/ }),
-/* 43 */
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = { "default": __webpack_require__(44), __esModule: true };
-
-/***/ }),
-/* 44 */
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__(45);
-__webpack_require__(58);
-module.exports = __webpack_require__(24).f('iterator');
-
-
-/***/ }),
-/* 45 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var $at = __webpack_require__(46)(true);
-
-// 21.1.3.27 String.prototype[@@iterator]()
-__webpack_require__(29)(String, 'String', function (iterated) {
- this._t = String(iterated); // target
- this._i = 0; // next index
-// 21.1.5.2.1 %StringIteratorPrototype%.next()
-}, function () {
- var O = this._t;
- var index = this._i;
- var point;
- if (index >= O.length) return { value: undefined, done: true };
- point = $at(O, index);
- this._i += point.length;
- return { value: point, done: false };
-});
-
-
-/***/ }),
-/* 46 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var toInteger = __webpack_require__(14);
-var defined = __webpack_require__(15);
-// true -> String#at
-// false -> String#codePointAt
-module.exports = function (TO_STRING) {
- return function (that, pos) {
- var s = String(defined(that));
- var i = toInteger(pos);
- var l = s.length;
- var a, b;
- if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
- a = s.charCodeAt(i);
- return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
- ? TO_STRING ? s.charAt(i) : a
- : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
- };
-};
-
-
-/***/ }),
-/* 47 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// optional / simple context binding
-var aFunction = __webpack_require__(48);
-module.exports = function (fn, that, length) {
- aFunction(fn);
- if (that === undefined) return fn;
- switch (length) {
- case 1: return function (a) {
- return fn.call(that, a);
- };
- case 2: return function (a, b) {
- return fn.call(that, a, b);
- };
- case 3: return function (a, b, c) {
- return fn.call(that, a, b, c);
- };
- }
- return function (/* ...args */) {
- return fn.apply(that, arguments);
- };
-};
-
-
-/***/ }),
-/* 48 */
-/***/ (function(module, exports) {
-
-module.exports = function (it) {
- if (typeof it != 'function') throw TypeError(it + ' is not a function!');
- return it;
-};
-
-
-/***/ }),
-/* 49 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var create = __webpack_require__(33);
-var descriptor = __webpack_require__(12);
-var setToStringTag = __webpack_require__(23);
-var IteratorPrototype = {};
-
-// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
-__webpack_require__(5)(IteratorPrototype, __webpack_require__(7)('iterator'), function () { return this; });
-
-module.exports = function (Constructor, NAME, next) {
- Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
- setToStringTag(Constructor, NAME + ' Iterator');
-};
-
-
-/***/ }),
-/* 50 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var dP = __webpack_require__(1);
-var anObject = __webpack_require__(10);
-var getKeys = __webpack_require__(19);
-
-module.exports = __webpack_require__(2) ? Object.defineProperties : function defineProperties(O, Properties) {
- anObject(O);
- var keys = getKeys(Properties);
- var length = keys.length;
- var i = 0;
- var P;
- while (length > i) dP.f(O, P = keys[i++], Properties[P]);
- return O;
-};
-
-
-/***/ }),
-/* 51 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// fallback for non-array-like ES3 and non-enumerable old V8 strings
-var cof = __webpack_require__(35);
-// eslint-disable-next-line no-prototype-builtins
-module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
- return cof(it) == 'String' ? it.split('') : Object(it);
-};
-
-
-/***/ }),
-/* 52 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// false -> Array#indexOf
-// true -> Array#includes
-var toIObject = __webpack_require__(6);
-var toLength = __webpack_require__(53);
-var toAbsoluteIndex = __webpack_require__(54);
-module.exports = function (IS_INCLUDES) {
- return function ($this, el, fromIndex) {
- var O = toIObject($this);
- var length = toLength(O.length);
- var index = toAbsoluteIndex(fromIndex, length);
- var value;
- // Array#includes uses SameValueZero equality algorithm
- // eslint-disable-next-line no-self-compare
- if (IS_INCLUDES && el != el) while (length > index) {
- value = O[index++];
- // eslint-disable-next-line no-self-compare
- if (value != value) return true;
- // Array#indexOf ignores holes, Array#includes - not
- } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
- if (O[index] === el) return IS_INCLUDES || index || 0;
- } return !IS_INCLUDES && -1;
- };
-};
-
-
-/***/ }),
-/* 53 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// 7.1.15 ToLength
-var toInteger = __webpack_require__(14);
-var min = Math.min;
-module.exports = function (it) {
- return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
-};
-
-
-/***/ }),
-/* 54 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var toInteger = __webpack_require__(14);
-var max = Math.max;
-var min = Math.min;
-module.exports = function (index, length) {
- index = toInteger(index);
- return index < 0 ? max(index + length, 0) : min(index, length);
-};
-
-
-/***/ }),
-/* 55 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var document = __webpack_require__(0).document;
-module.exports = document && document.documentElement;
-
-
-/***/ }),
-/* 56 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
-var has = __webpack_require__(3);
-var toObject = __webpack_require__(57);
-var IE_PROTO = __webpack_require__(20)('IE_PROTO');
-var ObjectProto = Object.prototype;
-
-module.exports = Object.getPrototypeOf || function (O) {
- O = toObject(O);
- if (has(O, IE_PROTO)) return O[IE_PROTO];
- if (typeof O.constructor == 'function' && O instanceof O.constructor) {
- return O.constructor.prototype;
- } return O instanceof Object ? ObjectProto : null;
-};
-
-
-/***/ }),
-/* 57 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// 7.1.13 ToObject(argument)
-var defined = __webpack_require__(15);
-module.exports = function (it) {
- return Object(defined(it));
-};
-
-
-/***/ }),
-/* 58 */
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__(59);
-var global = __webpack_require__(0);
-var hide = __webpack_require__(5);
-var Iterators = __webpack_require__(18);
-var TO_STRING_TAG = __webpack_require__(7)('toStringTag');
-
-var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +
- 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +
- 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +
- 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +
- 'TextTrackList,TouchList').split(',');
-
-for (var i = 0; i < DOMIterables.length; i++) {
- var NAME = DOMIterables[i];
- var Collection = global[NAME];
- var proto = Collection && Collection.prototype;
- if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
- Iterators[NAME] = Iterators.Array;
-}
-
-
-/***/ }),
-/* 59 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var addToUnscopables = __webpack_require__(60);
-var step = __webpack_require__(61);
-var Iterators = __webpack_require__(18);
-var toIObject = __webpack_require__(6);
-
-// 22.1.3.4 Array.prototype.entries()
-// 22.1.3.13 Array.prototype.keys()
-// 22.1.3.29 Array.prototype.values()
-// 22.1.3.30 Array.prototype[@@iterator]()
-module.exports = __webpack_require__(29)(Array, 'Array', function (iterated, kind) {
- this._t = toIObject(iterated); // target
- this._i = 0; // next index
- this._k = kind; // kind
-// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
-}, function () {
- var O = this._t;
- var kind = this._k;
- var index = this._i++;
- if (!O || index >= O.length) {
- this._t = undefined;
- return step(1);
- }
- if (kind == 'keys') return step(0, index);
- if (kind == 'values') return step(0, O[index]);
- return step(0, [index, O[index]]);
-}, 'values');
-
-// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
-Iterators.Arguments = Iterators.Array;
-
-addToUnscopables('keys');
-addToUnscopables('values');
-addToUnscopables('entries');
-
-
-/***/ }),
-/* 60 */
-/***/ (function(module, exports) {
-
-module.exports = function () { /* empty */ };
-
-
-/***/ }),
-/* 61 */
-/***/ (function(module, exports) {
-
-module.exports = function (done, value) {
- return { value: value, done: !!done };
-};
-
-
-/***/ }),
-/* 62 */
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = { "default": __webpack_require__(63), __esModule: true };
-
-/***/ }),
-/* 63 */
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__(64);
-__webpack_require__(70);
-__webpack_require__(71);
-__webpack_require__(72);
-module.exports = __webpack_require__(4).Symbol;
-
-
-/***/ }),
-/* 64 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-// ECMAScript 6 symbols shim
-var global = __webpack_require__(0);
-var has = __webpack_require__(3);
-var DESCRIPTORS = __webpack_require__(2);
-var $export = __webpack_require__(16);
-var redefine = __webpack_require__(32);
-var META = __webpack_require__(65).KEY;
-var $fails = __webpack_require__(11);
-var shared = __webpack_require__(21);
-var setToStringTag = __webpack_require__(23);
-var uid = __webpack_require__(13);
-var wks = __webpack_require__(7);
-var wksExt = __webpack_require__(24);
-var wksDefine = __webpack_require__(25);
-var enumKeys = __webpack_require__(66);
-var isArray = __webpack_require__(67);
-var anObject = __webpack_require__(10);
-var isObject = __webpack_require__(8);
-var toIObject = __webpack_require__(6);
-var toPrimitive = __webpack_require__(17);
-var createDesc = __webpack_require__(12);
-var _create = __webpack_require__(33);
-var gOPNExt = __webpack_require__(68);
-var $GOPD = __webpack_require__(69);
-var $DP = __webpack_require__(1);
-var $keys = __webpack_require__(19);
-var gOPD = $GOPD.f;
-var dP = $DP.f;
-var gOPN = gOPNExt.f;
-var $Symbol = global.Symbol;
-var $JSON = global.JSON;
-var _stringify = $JSON && $JSON.stringify;
-var PROTOTYPE = 'prototype';
-var HIDDEN = wks('_hidden');
-var TO_PRIMITIVE = wks('toPrimitive');
-var isEnum = {}.propertyIsEnumerable;
-var SymbolRegistry = shared('symbol-registry');
-var AllSymbols = shared('symbols');
-var OPSymbols = shared('op-symbols');
-var ObjectProto = Object[PROTOTYPE];
-var USE_NATIVE = typeof $Symbol == 'function';
-var QObject = global.QObject;
-// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
-var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
-
-// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
-var setSymbolDesc = DESCRIPTORS && $fails(function () {
- return _create(dP({}, 'a', {
- get: function () { return dP(this, 'a', { value: 7 }).a; }
- })).a != 7;
-}) ? function (it, key, D) {
- var protoDesc = gOPD(ObjectProto, key);
- if (protoDesc) delete ObjectProto[key];
- dP(it, key, D);
- if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
-} : dP;
-
-var wrap = function (tag) {
- var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
- sym._k = tag;
- return sym;
-};
-
-var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
- return typeof it == 'symbol';
-} : function (it) {
- return it instanceof $Symbol;
-};
-
-var $defineProperty = function defineProperty(it, key, D) {
- if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
- anObject(it);
- key = toPrimitive(key, true);
- anObject(D);
- if (has(AllSymbols, key)) {
- if (!D.enumerable) {
- if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
- it[HIDDEN][key] = true;
- } else {
- if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
- D = _create(D, { enumerable: createDesc(0, false) });
- } return setSymbolDesc(it, key, D);
- } return dP(it, key, D);
-};
-var $defineProperties = function defineProperties(it, P) {
- anObject(it);
- var keys = enumKeys(P = toIObject(P));
- var i = 0;
- var l = keys.length;
- var key;
- while (l > i) $defineProperty(it, key = keys[i++], P[key]);
- return it;
-};
-var $create = function create(it, P) {
- return P === undefined ? _create(it) : $defineProperties(_create(it), P);
-};
-var $propertyIsEnumerable = function propertyIsEnumerable(key) {
- var E = isEnum.call(this, key = toPrimitive(key, true));
- if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
- return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
-};
-var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
- it = toIObject(it);
- key = toPrimitive(key, true);
- if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
- var D = gOPD(it, key);
- if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
- return D;
-};
-var $getOwnPropertyNames = function getOwnPropertyNames(it) {
- var names = gOPN(toIObject(it));
- var result = [];
- var i = 0;
- var key;
- while (names.length > i) {
- if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
- } return result;
-};
-var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
- var IS_OP = it === ObjectProto;
- var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
- var result = [];
- var i = 0;
- var key;
- while (names.length > i) {
- if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
- } return result;
-};
-
-// 19.4.1.1 Symbol([description])
-if (!USE_NATIVE) {
- $Symbol = function Symbol() {
- if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
- var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
- var $set = function (value) {
- if (this === ObjectProto) $set.call(OPSymbols, value);
- if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
- setSymbolDesc(this, tag, createDesc(1, value));
- };
- if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
- return wrap(tag);
- };
- redefine($Symbol[PROTOTYPE], 'toString', function toString() {
- return this._k;
- });
-
- $GOPD.f = $getOwnPropertyDescriptor;
- $DP.f = $defineProperty;
- __webpack_require__(37).f = gOPNExt.f = $getOwnPropertyNames;
- __webpack_require__(26).f = $propertyIsEnumerable;
- __webpack_require__(36).f = $getOwnPropertySymbols;
-
- if (DESCRIPTORS && !__webpack_require__(9)) {
- redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
- }
-
- wksExt.f = function (name) {
- return wrap(wks(name));
- };
-}
-
-$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });
-
-for (var es6Symbols = (
- // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
- 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
-).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);
-
-for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);
-
-$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
- // 19.4.2.1 Symbol.for(key)
- 'for': function (key) {
- return has(SymbolRegistry, key += '')
- ? SymbolRegistry[key]
- : SymbolRegistry[key] = $Symbol(key);
- },
- // 19.4.2.5 Symbol.keyFor(sym)
- keyFor: function keyFor(sym) {
- if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
- for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
- },
- useSetter: function () { setter = true; },
- useSimple: function () { setter = false; }
-});
-
-$export($export.S + $export.F * !USE_NATIVE, 'Object', {
- // 19.1.2.2 Object.create(O [, Properties])
- create: $create,
- // 19.1.2.4 Object.defineProperty(O, P, Attributes)
- defineProperty: $defineProperty,
- // 19.1.2.3 Object.defineProperties(O, Properties)
- defineProperties: $defineProperties,
- // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
- getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
- // 19.1.2.7 Object.getOwnPropertyNames(O)
- getOwnPropertyNames: $getOwnPropertyNames,
- // 19.1.2.8 Object.getOwnPropertySymbols(O)
- getOwnPropertySymbols: $getOwnPropertySymbols
-});
-
-// 24.3.2 JSON.stringify(value [, replacer [, space]])
-$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
- var S = $Symbol();
- // MS Edge converts symbol values to JSON as {}
- // WebKit converts symbol values to JSON as null
- // V8 throws on boxed symbols
- return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
-})), 'JSON', {
- stringify: function stringify(it) {
- var args = [it];
- var i = 1;
- var replacer, $replacer;
- while (arguments.length > i) args.push(arguments[i++]);
- $replacer = replacer = args[1];
- if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
- if (!isArray(replacer)) replacer = function (key, value) {
- if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
- if (!isSymbol(value)) return value;
- };
- args[1] = replacer;
- return _stringify.apply($JSON, args);
- }
-});
-
-// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
-$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(5)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
-// 19.4.3.5 Symbol.prototype[@@toStringTag]
-setToStringTag($Symbol, 'Symbol');
-// 20.2.1.9 Math[@@toStringTag]
-setToStringTag(Math, 'Math', true);
-// 24.3.3 JSON[@@toStringTag]
-setToStringTag(global.JSON, 'JSON', true);
-
-
-/***/ }),
-/* 65 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var META = __webpack_require__(13)('meta');
-var isObject = __webpack_require__(8);
-var has = __webpack_require__(3);
-var setDesc = __webpack_require__(1).f;
-var id = 0;
-var isExtensible = Object.isExtensible || function () {
- return true;
-};
-var FREEZE = !__webpack_require__(11)(function () {
- return isExtensible(Object.preventExtensions({}));
-});
-var setMeta = function (it) {
- setDesc(it, META, { value: {
- i: 'O' + ++id, // object ID
- w: {} // weak collections IDs
- } });
-};
-var fastKey = function (it, create) {
- // return primitive with prefix
- if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
- if (!has(it, META)) {
- // can't set metadata to uncaught frozen object
- if (!isExtensible(it)) return 'F';
- // not necessary to add metadata
- if (!create) return 'E';
- // add missing metadata
- setMeta(it);
- // return object ID
- } return it[META].i;
-};
-var getWeak = function (it, create) {
- if (!has(it, META)) {
- // can't set metadata to uncaught frozen object
- if (!isExtensible(it)) return true;
- // not necessary to add metadata
- if (!create) return false;
- // add missing metadata
- setMeta(it);
- // return hash weak collections IDs
- } return it[META].w;
-};
-// add metadata on freeze-family methods calling
-var onFreeze = function (it) {
- if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
- return it;
-};
-var meta = module.exports = {
- KEY: META,
- NEED: false,
- fastKey: fastKey,
- getWeak: getWeak,
- onFreeze: onFreeze
-};
-
-
-/***/ }),
-/* 66 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// all enumerable object keys, includes symbols
-var getKeys = __webpack_require__(19);
-var gOPS = __webpack_require__(36);
-var pIE = __webpack_require__(26);
-module.exports = function (it) {
- var result = getKeys(it);
- var getSymbols = gOPS.f;
- if (getSymbols) {
- var symbols = getSymbols(it);
- var isEnum = pIE.f;
- var i = 0;
- var key;
- while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
- } return result;
-};
-
-
-/***/ }),
-/* 67 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// 7.2.2 IsArray(argument)
-var cof = __webpack_require__(35);
-module.exports = Array.isArray || function isArray(arg) {
- return cof(arg) == 'Array';
-};
-
-
-/***/ }),
-/* 68 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
-var toIObject = __webpack_require__(6);
-var gOPN = __webpack_require__(37).f;
-var toString = {}.toString;
-
-var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
- ? Object.getOwnPropertyNames(window) : [];
-
-var getWindowNames = function (it) {
- try {
- return gOPN(it);
- } catch (e) {
- return windowNames.slice();
- }
-};
-
-module.exports.f = function getOwnPropertyNames(it) {
- return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
-};
-
-
-/***/ }),
-/* 69 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var pIE = __webpack_require__(26);
-var createDesc = __webpack_require__(12);
-var toIObject = __webpack_require__(6);
-var toPrimitive = __webpack_require__(17);
-var has = __webpack_require__(3);
-var IE8_DOM_DEFINE = __webpack_require__(30);
-var gOPD = Object.getOwnPropertyDescriptor;
-
-exports.f = __webpack_require__(2) ? gOPD : function getOwnPropertyDescriptor(O, P) {
- O = toIObject(O);
- P = toPrimitive(P, true);
- if (IE8_DOM_DEFINE) try {
- return gOPD(O, P);
- } catch (e) { /* empty */ }
- if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
-};
-
-
-/***/ }),
-/* 70 */
-/***/ (function(module, exports) {
-
-
-
-/***/ }),
-/* 71 */
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__(25)('asyncIterator');
-
-
-/***/ }),
-/* 72 */
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__(25)('observable');
-
-
-/***/ }),
-/* 73 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var __vue_exports__, __vue_options__
-var __vue_styles__ = []
-
-/* styles */
-__vue_styles__.push(__webpack_require__(74)
-)
-
-/* script */
-__vue_exports__ = __webpack_require__(75)
-
-/* template */
-var __vue_template__ = __webpack_require__(86)
-__vue_options__ = __vue_exports__ = __vue_exports__ || {}
-if (
- typeof __vue_exports__.default === "object" ||
- typeof __vue_exports__.default === "function"
-) {
-if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")}
-__vue_options__ = __vue_exports__ = __vue_exports__.default
-}
-if (typeof __vue_options__ === "function") {
- __vue_options__ = __vue_options__.options
-}
-__vue_options__.__file = "/Users/kw/github/weex-vue-examples/src/pages/about/About.vue"
-__vue_options__.render = __vue_template__.render
-__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-__vue_options__._scopeId = "data-v-13681c5e"
-__vue_options__.style = __vue_options__.style || {}
-__vue_styles__.forEach(function (module) {
- for (var name in module) {
- __vue_options__.style[name] = module[name]
- }
-})
-if (typeof __register_static_styles__ === "function") {
- __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
-}
-
-module.exports = __vue_exports__
-
-
-/***/ }),
-/* 74 */
-/***/ (function(module, exports) {
-
-module.exports = {
- "list": {
- "backgroundColor": "#F5F5F5"
- },
- "item": {
- "paddingTop": "30",
- "paddingBottom": "30",
- "paddingLeft": "60",
- "paddingRight": "40",
- "borderBottomWidth": "1",
- "borderBottomStyle": "solid",
- "borderBottomColor": "#E6E6E6",
- "backgroundColor": "#FFFFFF",
- "flexDirection": "row",
- "justifyContent": "space-between",
- "alignItems": "center"
- },
- "item-1": {
- "borderTopWidth": "1",
- "borderTopStyle": "solid",
- "borderTopColor": "#E6E6E6"
- },
- "item-title": {
- "fontSize": "42",
- "color": "#606060"
- },
- "item-value": {
- "fontSize": "36",
- "color": "#999999"
- },
- "arrow-icon": {
- "width": "22",
- "height": "36"
- },
- "copyright": {
- "marginTop": "50",
- "paddingBottom": "20"
- },
- "copyright-text": {
- "fontSize": "22",
- "color": "#A0A0A0",
- "textAlign": "center"
- }
-}
-
-/***/ }),
-/* 75 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-
-var _utils = __webpack_require__(27);
-
-var utils = _interopRequireWildcard(_utils);
-
-var _mock = __webpack_require__(76);
-
-var _AppInfoCard = __webpack_require__(82);
-
-var _AppInfoCard2 = _interopRequireDefault(_AppInfoCard);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
-
-var picker = weex.requireModule('picker'); //
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-
-var channel = new BroadcastChannel('language');
-exports.default = {
- components: { AppInfoCard: _AppInfoCard2.default },
- data: function data() {
- return {
- language: 'en',
- followSystemLanguage: true,
- navigationBarOptions: {
- title: {
- zh: '关于 Weex',
- en: 'About Weex'
- }
- },
- dict: {
- FOLLOW_SYSTEM: { en: 'Follow System', zh: '跟随系统' },
- LANGUAGE: { en: 'Language', zh: '语言' }
- },
- aboutApp: _mock.aboutApp
- };
- },
-
- watch: {
- language: function language() {
- channel.postMessage({ language: this.language });
- }
- },
- computed: {
- languageName: function languageName() {
- if (this.followSystemLanguage) {
- return this.i18n(this.dict.FOLLOW_SYSTEM);
- }
- return this.i18n({ en: 'English', zh: '简体中文' });
- }
- },
- created: function created() {
- var _this = this;
-
- utils.readAbout(function (about) {
- _this.aboutApp = about;
- });
- utils.getStorageLanguage(function (lang) {
- return _this.followSystemLanguage = false;
- }, function () {
- return _this.followSystemLanguage = true;
- });
- },
-
- methods: {
- chooseLanguage: function chooseLanguage() {
- var _this2 = this;
-
- var options = ['', 'en', 'zh'];
- var index = this.followSystemLanguage ? 0 : options.indexOf(this.language);
- picker.pick({
- index: index,
- items: [this.i18n(this.dict.FOLLOW_SYSTEM), 'English', '中文']
- }, function (_ref) {
- var result = _ref.result,
- data = _ref.data;
-
- if (result === 'success') {
- var select = options[data];
- if (select) {
- _this2.followSystemLanguage = false;
- _this2.language = select;
- utils.setLanguage(select);
- } else {
- _this2.followSystemLanguage = true;
- utils.clearStorageLanguage();
- utils.getSystemLanguage(function (lang) {
- _this2.language = lang;
- }, function (error) {
- _this2.language = 'en';
- });
- }
- }
- });
- }
- }
-};
-
-/***/ }),
-/* 76 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.aboutApp = exports.guideLessons = undefined;
-
-var _sliders = __webpack_require__(77);
-
-var _sliders2 = _interopRequireDefault(_sliders);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var guideLessons = exports.guideLessons = _sliders2.default;
-
-var aboutApp = exports.aboutApp = [{
- title: { en: 'Weex Official Website', zh: 'Weex 官方网站' },
- link: {
- en: 'http://weex-project.io/',
- zh: 'http://weex-project.io/cn/'
- }
-}, {
- title: { en: 'Apache Software Foundation', zh: 'Apache 软件基金会' },
- link: 'http://www.apache.org/'
-}, {
- title: { en: 'Who is using Weex', zh: '谁在使用 Weex' },
- link: {
- en: 'http://weex-project.io/who-is-using-weex.html',
- zh: 'http://weex-project.io/cn/who-is-using-weex.html'
- }
-}, {
- title: { en: 'Contribution', zh: '参与贡献' },
- link: {
- en: 'http://weex-project.io/guide/contributing.html',
- zh: 'http://weex-project.io/cn/guide/contributing.html'
- }
-}, {
- title: { en: 'Release Note', zh: '版本变更' },
- link: {
- en: 'http://weex-project.io/releasenote.html',
- zh: 'http://weex-project.io/cn/releasenote.html'
- }
-}, {
- title: { en: 'FAQ', zh: '常见问题' },
- link: {
- en: 'http://weex-project.io/faq.html',
- zh: 'http://weex-project.io/cn/faq.html'
- }
-}];
-
-/***/ }),
-/* 77 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-
-var _defineProperty2 = __webpack_require__(78);
-
-var _defineProperty3 = _interopRequireDefault(_defineProperty2);
-
-var _ref, _ref2, _ref3;
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-exports.default = [{
- subject: 'weex',
- mainColor: '#00B4FF',
- title: { zh: '学习 Weex', en: 'Learn Weex' },
- poster: 'https://gw.alicdn.com/tfs/TB1.8Vdl9_I8KJjy0FoXXaFnVXa-3799-1615.png',
- posterBg: '#E5F7FF',
- posterStyle: {
- width: '650px',
- height: '304px'
- },
- copyright: {
- zh: '来自 http://weex-project.io/cn/',
- en: 'From http://weex-project.io/'
- },
- lessons: [{
- title: {
- zh: '快速入门',
- en: 'Getting Started'
- },
- docLink: {
- zh: 'http://weex-project.io/cn/guide/index.html',
- en: 'http://weex-project.io/guide/index.html'
- }
- }, {
- title: {
- zh: '工作原理',
- en: 'How it Works'
- },
- docLink: {
- zh: 'http://weex-project.io/cn/wiki/index.html',
- en: 'http://weex-project.io/wiki/index.html'
- }
- }, {
- title: {
- zh: 'Weex 中的前端框架',
- en: 'Front-end Frameworks'
- },
- docLink: {
- zh: 'http://weex-project.io/cn/guide/front-end-frameworks.html',
- en: 'http://weex-project.io/guide/front-end-frameworks.html'
- }
- }, {
- title: {
- zh: '在 Weex 中使用 Vue.js',
- en: 'Use Vue.js on Weex'
- },
- docLink: {
- zh: 'http://weex-project.io/cn/guide/use-vue.html',
- en: 'http://weex-project.io/guide/use-vue.html'
- }
- }, {
- title: {
- zh: '与 Web 平台的差异',
- en: 'Platform difference with Web'
- },
- docLink: {
- zh: 'http://weex-project.io/cn/wiki/platform-difference.html',
- en: 'http://weex-project.io/wiki/platform-difference.html'
- }
- }, {
- title: {
- zh: '集成 Weex 到已有应用',
- en: 'Integrate to Your App'
- },
- docLink: {
- zh: 'http://weex-project.io/cn/guide/integrate-to-your-app.html',
- en: 'http://weex-project.io/guide/integrate-to-your-app.html'
- }
- }, {
- title: {
- zh: '搭建开发环境',
- en: 'Set Up Dev Environment'
- },
- docLink: {
- zh: 'http://weex-project.io/cn/guide/set-up-env.html',
- en: 'http://weex-project.io/guide/set-up-env.html'
- }
- }, {
- title: {
- zh: '通用样式',
- en: 'Common Styles'
- },
- docLink: {
- zh: 'http://weex-project.io/cn/wiki/common-styles.html',
- en: 'http://weex-project.io/wiki/common-styles.html'
- }
- }, {
- title: {
- zh: '通用事件',
- en: 'Common Events'
- },
- docLink: {
- zh: 'http://weex-project.io/cn/wiki/common-events.html',
- en: 'http://weex-project.io/wiki/common-events.html'
- }
- }, {
- title: {
- zh: 'Weex 实例变量',
- en: 'The "weex" Variable'
- },
- docLink: {
- zh: 'http://weex-project.io/cn/references/weex-variable.html',
- en: 'http://weex-project.io/references/weex-variable.html'
- }
- }, {
- title: {
- zh: '内置组件',
- en: 'Built-in Components'
- },
- docLink: {
- zh: 'http://weex-project.io/cn/references/components/index.html',
- en: 'http://weex-project.io/references/components/index.html'
- }
- }, {
- title: {
- zh: '内置模块',
- en: 'Built-in Modules'
- },
- docLink: {
- zh: 'http://weex-project.io/cn/references/modules/index.html',
- en: 'http://weex-project.io/references/modules/index.html'
- }
- }, {
- title: {
- zh: '扩展 Android 组件/模块',
- en: 'Extend Android'
- },
- docLink: {
- zh: 'http://weex-project.io/cn/guide/extend-android.html',
- en: 'http://weex-project.io/guide/extend-android.html'
- }
- }, {
- title: {
- zh: '扩展 iOS 组件/模块',
- en: 'Extend iOS'
- },
- docLink: {
- zh: 'http://weex-project.io/cn/guide/extend-ios.html',
- en: 'http://weex-project.io/guide/extend-ios.html'
- }
- }, {
- title: {
- zh: '使用 weex-toolkit',
- en: 'Use weex-toolkit'
- },
- docLink: {
- zh: 'http://weex-project.io/cn/tools/toolkit.html',
- en: 'http://weex-project.io/tools/toolkit.html'
- }
- }, {
- title: {
- zh: '如何参与贡献',
- en: 'How to Contribute'
- },
- docLink: {
- zh: 'http://weex-project.io/cn/contributing.html',
- en: 'http://weex-project.io/contributing.html'
- }
- }]
-}, (_ref = {
- subject: 'vue',
- mainColor: '#42b983',
- title: { zh: '学习 Vue.js', en: 'Learn Vue.js' },
- poster: 'https://gw.alicdn.com/tfs/TB1J_uKcMMPMeJjy1XdXXasrXXa-400-400.png',
- posterBg: '#E7FBF2',
- posterStyle: {
- width: '300px',
- height: '300px'
- }
-}, (0, _defineProperty3.default)(_ref, 'title', {
- zh: '学习 Vue.js',
- en: 'Learn Vue.js'
-}), (0, _defineProperty3.default)(_ref, 'copyright', {
- zh: '来自 https://cn.vuejs.org/',
- en: 'From https://vuejs.org/'
-}), (0, _defineProperty3.default)(_ref, 'lessons', [{
- title: {
- zh: 'Vue.js 是什么?',
- en: 'What is Vue.js ?'
- },
- docLink: {
- zh: 'https://cn.vuejs.org/v2/guide/index.html',
- en: 'https://vuejs.org/v2/guide/index.html'
- }
-}, {
- title: {
- zh: '单文件组件',
- en: 'Single File Components'
- },
- docLink: {
- zh: 'https://cn.vuejs.org/v2/guide/single-file-components.html',
- en: 'https://vuejs.org/v2/guide/single-file-components.html'
- }
-}, {
- title: {
- zh: '模板语法',
- en: 'Template Syntax'
- },
- docLink: {
- zh: 'https://cn.vuejs.org/v2/guide/syntax.html',
- en: 'https://vuejs.org/v2/guide/syntax.html'
- }
-}, {
- title: {
- zh: 'Class 与 Style 绑定',
- en: 'Class and Style Bindings'
- },
- docLink: {
- zh: 'https://cn.vuejs.org/v2/guide/class-and-style.html',
- en: 'https://vuejs.org/v2/guide/class-and-style.html'
- }
-}, {
- title: {
- zh: '条件渲染',
- en: 'Conditional Rendering'
- },
- docLink: {
- zh: 'https://cn.vuejs.org/v2/guide/conditional.html',
- en: 'https://vuejs.org/v2/guide/conditional.html'
- }
-}, {
- title: {
- zh: '列表渲染',
- en: 'List Rendering'
- },
- docLink: {
- zh: 'https://cn.vuejs.org/v2/guide/list.html',
- en: 'https://vuejs.org/v2/guide/list.html'
- }
-}, {
- title: {
- zh: '事件处理',
- en: 'Event Handling'
- },
- docLink: {
- zh: 'https://cn.vuejs.org/v2/guide/events.html',
- en: 'https://vuejs.org/v2/guide/events.html'
- }
-}, {
- title: {
- zh: '表单输入绑定',
- en: 'Form Input Bindings'
- },
- docLink: {
- zh: 'https://cn.vuejs.org/v2/guide/forms.html',
- en: 'https://vuejs.org/v2/guide/forms.html'
- }
-}, {
- title: {
- zh: 'Vue 实例',
- en: 'The Vue Instance'
- },
- docLink: {
- zh: 'https://cn.vuejs.org/v2/guide/instance.html',
- en: 'https://vuejs.org/v2/guide/instance.html'
- }
-}, {
- title: {
- zh: '在 Weex 中使用 Vue.js',
- en: 'Use Vue.js on Weex'
- },
- docLink: {
- zh: 'http://weex-project.io/cn/guide/use-vue.html',
- en: 'http://weex-project.io/guide/use-vue.html'
- }
-}, {
- title: {
- zh: '混合(mixins)',
- en: 'Mixins'
- },
- docLink: {
- zh: 'https://cn.vuejs.org/v2/guide/mixins.html',
- en: 'https://vuejs.org/v2/guide/mixins.html'
- }
-}, {
- title: {
- zh: '过滤器(filters)',
- en: 'Filters'
- },
- docLink: {
- zh: 'https://cn.vuejs.org/v2/guide/filters.html',
- en: 'https://vuejs.org/v2/guide/filters.html'
- }
-}, {
- title: {
- zh: '插件(plugins)',
- en: 'Plugins'
- },
- docLink: {
- zh: 'https://cn.vuejs.org/v2/guide/plugins.html',
- en: 'https://vuejs.org/v2/guide/plugins.html'
- }
-}, {
- title: {
- zh: '自定义指令',
- en: 'Custom Directives'
- },
- docLink: {
- zh: 'https://cn.vuejs.org/v2/guide/custom-directive.html',
- en: 'https://vuejs.org/v2/guide/custom-directive.html'
- }
-}, {
- title: {
- zh: '状态管理',
- en: 'State Management'
- },
- docLink: {
- zh: 'https://cn.vuejs.org/v2/guide/state-management.html',
- en: 'https://vuejs.org/v2/guide/state-management.html'
- }
-}, {
- title: {
- zh: '深入响应式原理',
- en: 'Reactivity in Depth'
- },
- docLink: {
- zh: 'https://cn.vuejs.org/v2/guide/reactivity.html',
- en: 'https://vuejs.org/v2/guide/reactivity.html'
- }
-}, {
- title: {
- zh: '渲染函数',
- en: 'Render Functions'
- },
- docLink: {
- zh: 'https://cn.vuejs.org/v2/guide/render-function.html',
- en: 'https://vuejs.org/v2/guide/render-function.html'
- }
-}, {
- title: {
- zh: 'TypeScript 支持',
- en: 'TypeScript Support'
- },
- docLink: {
- zh: 'https://cn.vuejs.org/v2/guide/typescript.html',
- en: 'https://vuejs.org/v2/guide/typescript.html'
- }
-}, {
- title: 'API',
- docLink: {
- zh: 'https://cn.vuejs.org/v2/api/',
- en: 'https://vuejs.org/v2/api/'
- }
-}]), _ref), (_ref2 = {
- subject: 'javascript',
- mainColor: '#F7BD2A',
- title: { zh: '学习 Javascript', en: 'Learn Javascript' },
- poster: 'https://gw.alicdn.com/tfs/TB1bT98hMoQMeJjy0FpXXcTxpXa-1500-700.png',
- posterBg: '#FAF3EB',
- posterStyle: {
- width: '750px',
- height: '350px'
- }
-}, (0, _defineProperty3.default)(_ref2, 'title', {
- zh: '学习 Javascript',
- en: 'Learn Javascript'
-}), (0, _defineProperty3.default)(_ref2, 'copyright', {
- zh: '来自 MDN (Mozilla Developer Network)',
- en: 'From MDN (Mozilla Developer Network)'
-}), (0, _defineProperty3.default)(_ref2, 'lessons', [{
- title: {
- zh: '什么是 Javascript ?',
- en: 'What is Javascript ?'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/What_is_JavaScript',
- en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/What_is_JavaScript'
- }
-}, {
- title: {
- zh: 'JavaScript基础',
- en: 'JavaScript basics'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/Getting_started_with_the_web/JavaScript_basics',
- en: 'https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/JavaScript_basics'
- }
-}, {
- title: {
- zh: '重新介绍 JavaScript',
- en: 'A re-introduction to JavaScript'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/A_re-introduction_to_JavaScript',
- en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript'
- }
-}, {
- title: {
- zh: '语法和数据类型',
- en: 'Grammar and types'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Grammar_and_types#Variable_scope',
- en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Grammar_and_types#Variable_scope'
- }
-}, {
- title: {
- zh: '数据类型和数据结构',
- en: 'Data types and data structures'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Data_structures',
- en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures'
- }
-}, {
- title: {
- zh: '变量',
- en: 'Variables'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/Variables',
- en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Variables'
- }
-}, {
- title: {
- zh: '数字和操作符',
- en: 'Numbers and operators'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/Math',
- en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Math'
- }
-}, {
- title: {
- zh: '字符串',
- en: 'Handling text'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/Strings',
- en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Strings'
- }
-}, {
- title: {
- zh: '常用的 String 方法',
- en: 'Useful string methods'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/Useful_string_methods',
- en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Useful_string_methods'
- }
-}, {
- title: {
- zh: '数组',
- en: 'Arrays'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/Arrays',
- en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Arrays'
- }
-}, {
- title: {
- zh: '函数',
- en: 'Functions'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Functions',
- en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions'
- }
-}, {
- title: {
- zh: 'JavaScript 对象基础',
- en: 'JavaScript object basics'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/Basics',
- en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Basics'
- }
-}, {
- title: {
- zh: '使用对象',
- en: 'Working with objects'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Working_with_Objects',
- en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects'
- }
-}, {
- title: {
- zh: '使用 JSON 数据',
- en: 'Working with JSON'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/JSON',
- en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON'
- }
-}, {
- title: {
- zh: '对象模型的细节',
- en: 'Details of the object model'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Details_of_the_Object_Model',
- en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Details_of_the_Object_Model'
- }
-}, {
- title: {
- zh: '对象原型',
- en: 'Object prototypes'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Object_prototypes',
- en: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/Object_prototypes'
- }
-}, {
- title: {
- zh: 'JavaScript 中的继承',
- en: 'Inheritance in JavaScript'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/Inheritance',
- en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Inheritance'
- }
-}, {
- title: {
- zh: '继承与原型链',
- en: 'Inheritance and the prototype chain'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Inheritance_and_the_prototype_chain',
- en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain'
- }
-}, {
- title: {
- zh: '严格模式',
- en: 'Strict mode'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Strict_mode',
- en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode'
- }
-}, {
- title: {
- zh: '内存管理',
- en: 'Memory Management'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Memory_Management',
- en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management'
- }
-}, {
- title: {
- zh: '并发模型与事件循环',
- en: 'Concurrency model and Event Loop'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/EventLoop',
- en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop'
- }
-}, {
- // title: {
- // zh: '索引集合类',
- // en: 'Indexed collections'
- // },
- // docLink: {
- // zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Indexed_collections',
- // en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Indexed_collections'
- // }
- // }, {
- // title: {
- // zh: '带键的集合',
- // en: 'Keyed collections'
- // },
- // docLink: {
- // zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Keyed_collections',
- // en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Keyed_collections'
- // }
- // }, {
- title: {
- zh: 'JavaScript 标准库',
- en: 'Standard built-in objects'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects',
- en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects'
- }
-}]), _ref2), (_ref3 = {
- subject: 'css',
- mainColor: '#F56FC6',
- title: { zh: '学习 CSS', en: 'Learn CSS' },
- titleColor: '#FFFFFF',
- poster: 'https://gw.alicdn.com/tfs/TB1k6anhMMPMeJjy1XdXXasrXXa-427-190.jpg',
- posterBg: '#FFA2DE',
- posterStyle: {
- width: '517px',
- height: '230px'
- }
-}, (0, _defineProperty3.default)(_ref3, 'title', {
- zh: '学习 CSS',
- en: 'Learn CSS'
-}), (0, _defineProperty3.default)(_ref3, 'copyright', {
- zh: '来自 MDN (Mozilla Developer Network)',
- en: 'From MDN (Mozilla Developer Network)'
-}), (0, _defineProperty3.default)(_ref3, 'lessons', [{
- title: {
- zh: '什么是 CSS ?',
- en: 'What is CSS ?'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Getting_started/What_is_CSS',
- en: 'https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started/What_is_CSS'
- }
-}, {
- title: {
- zh: 'CSS 语法',
- en: 'CSS Syntax'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/CSS/Introduction_to_CSS/Syntax',
- en: 'https://developer.mozilla.org/en-US/docs/Learn/CSS/Introduction_to_CSS/Syntax'
- }
-}, {
- title: {
- zh: 'CSS的值和单位',
- en: 'CSS Values and Units'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/CSS/Introduction_to_CSS/Values_and_units',
- en: 'https://developer.mozilla.org/en-US/docs/Learn/CSS/Introduction_to_CSS/Values_and_units'
- }
-}, {
- title: {
- zh: '盒模型',
- en: 'The Box Model'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/CSS/Introduction_to_CSS/Box_model',
- en: 'https://developer.mozilla.org/en-US/docs/Learn/CSS/Introduction_to_CSS/Box_model'
- }
-}, {
- title: {
- zh: '盒模型的属性',
- en: 'Box Model Properties'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Box_Model',
- en: 'https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model'
- }
-}, {
- title: {
- zh: '定位布局',
- en: 'Positioning'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/CSS/CSS_layout/%E5%AE%9A%E4%BD%8Dx',
- en: 'https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/positioning'
- }
-}, {
- title: {
- zh: '定位布局的属性',
- en: 'CSS Positioning'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Positioning',
- en: 'https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning'
- }
-}, {
- title: {
- zh: 'Flexbox 布局',
- en: 'Flexbox Layout'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/CSS/CSS_layout/Flexbox',
- en: 'https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Flexbox'
- }
-}, {
- title: {
- zh: 'Flexbox 布局的属性',
- en: 'CSS Flexible Box Layout'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Flexible_Box_Layout',
- en: 'https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout'
- }
-}, {
- title: {
- zh: 'Weex 中的通用样式',
- en: 'Common Styles in Weex'
- },
- docLink: {
- zh: 'http://weex-project.io/cn/references/common-style.html',
- en: 'http://weex-project.io/references/common-style.html'
- }
-}, {
- title: {
- zh: 'Weex 中的文本样式',
- en: 'Text Styles in Weex'
- },
- docLink: {
- zh: 'http://weex-project.io/cn/references/text-style.html',
- en: 'http://weex-project.io/references/text-style.html'
- }
-}, {
- title: {
- zh: '块格式化上下文(BFC)',
- en: 'Block Formatting Context'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Block_formatting_context',
- en: 'https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context'
- }
-}, {
- title: {
- zh: '视觉格式化模型',
- en: 'Visual Formatting Model'
- },
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Visual_formatting_model',
- en: 'https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Visual_formatting_model'
- }
-}, {
- title: 'CSS Reference',
- docLink: {
- zh: 'https://developer.mozilla.org/zh-CN/docs/Web/CSS/Reference',
- en: 'https://developer.mozilla.org/en-US/docs/Web/CSS/Reference'
- }
-}]), _ref3)];
-
-/***/ }),
-/* 78 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-exports.__esModule = true;
-
-var _defineProperty = __webpack_require__(79);
-
-var _defineProperty2 = _interopRequireDefault(_defineProperty);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-exports.default = function (obj, key, value) {
- if (key in obj) {
- (0, _defineProperty2.default)(obj, key, {
- value: value,
- enumerable: true,
- configurable: true,
- writable: true
- });
- } else {
- obj[key] = value;
- }
-
- return obj;
-};
-
-/***/ }),
-/* 79 */
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = { "default": __webpack_require__(80), __esModule: true };
-
-/***/ }),
-/* 80 */
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__(81);
-var $Object = __webpack_require__(4).Object;
-module.exports = function defineProperty(it, key, desc) {
- return $Object.defineProperty(it, key, desc);
-};
-
-
-/***/ }),
-/* 81 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var $export = __webpack_require__(16);
-// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
-$export($export.S + $export.F * !__webpack_require__(2), 'Object', { defineProperty: __webpack_require__(1).f });
-
-
-/***/ }),
-/* 82 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var __vue_exports__, __vue_options__
-var __vue_styles__ = []
-
-/* styles */
-__vue_styles__.push(__webpack_require__(83)
-)
-
-/* script */
-__vue_exports__ = __webpack_require__(84)
-
-/* template */
-var __vue_template__ = __webpack_require__(85)
-__vue_options__ = __vue_exports__ = __vue_exports__ || {}
-if (
- typeof __vue_exports__.default === "object" ||
- typeof __vue_exports__.default === "function"
-) {
-if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")}
-__vue_options__ = __vue_exports__ = __vue_exports__.default
-}
-if (typeof __vue_options__ === "function") {
- __vue_options__ = __vue_options__.options
-}
-__vue_options__.__file = "/Users/kw/github/weex-vue-examples/src/components/AppInfoCard.vue"
-__vue_options__.render = __vue_template__.render
-__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-__vue_options__._scopeId = "data-v-0ba305b6"
-__vue_options__.style = __vue_options__.style || {}
-__vue_styles__.forEach(function (module) {
- for (var name in module) {
- __vue_options__.style[name] = module[name]
- }
-})
-if (typeof __register_static_styles__ === "function") {
- __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
-}
-
-module.exports = __vue_exports__
-
-
-/***/ }),
-/* 83 */
-/***/ (function(module, exports) {
-
-module.exports = {
- "card": {
- "width": "650",
- "justifyContent": "center",
- "borderWidth": "1",
- "borderColor": "#DDDDDD",
- "borderRadius": "20",
- "paddingTop": "50",
- "paddingRight": "50",
- "paddingBottom": "50",
- "paddingLeft": "50",
- "marginTop": "50",
- "marginRight": "50",
- "marginBottom": "50",
- "marginLeft": "50",
- "backgroundColor": "#FFFFFF"
- },
- "title": {
- "fontSize": "34",
- "textAlign": "center",
- "color": "#808080",
- "marginBottom": "20"
- },
- "version": {
- "fontSize": "80",
- "textAlign": "center",
- "marginBottom": "30",
- "color": "#323232"
- },
- "group": {
- "marginTop": "10",
- "flexDirection": "row"
- },
- "label": {
- "width": "260",
- "fontSize": "32",
- "textAlign": "right",
- "color": "#888888"
- },
- "value": {
- "width": "230",
- "paddingLeft": "50",
- "fontSize": "32",
- "color": "#414141"
- }
-}
-
-/***/ }),
-/* 84 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-
-var _typeof2 = __webpack_require__(28);
-
-var _typeof3 = _interopRequireDefault(_typeof2);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-
-var invalid = '- invalid -';
-var unknown = '- - -';
-exports.default = {
- data: function data() {
- return {
- version: invalid,
- jsfmVersion: invalid,
- platform: invalid,
- osVersion: invalid,
- deviceModel: invalid
- };
- },
- created: function created() {
- try {
- this.jsfmVersion = getJSFMVersion();
- } catch (e) {
- this.jsfmVersion = '≤ 0.15.6';
- }
- if ((typeof WXEnvironment === 'undefined' ? 'undefined' : (0, _typeof3.default)(WXEnvironment)) === 'object') {
- this.version = WXEnvironment.weexVersion || unknown;
- this.platform = WXEnvironment.platform || unknown;
- this.osVersion = WXEnvironment.osVersion || unknown;
- this.deviceModel = WXEnvironment.deviceModel || unknown;
- }
- }
-};
-
-/***/ }),
-/* 85 */
-/***/ (function(module, exports) {
-
-module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
- return _c('div', {
- staticClass: ["card"]
- }, [_c('div', {
- staticClass: ["info"]
- }, [_c('text', {
- staticClass: ["title"]
- }, [_vm._v("Weex SDK Version")]), _c('text', {
- staticClass: ["version"]
- }, [_vm._v(_vm._s(_vm.version))]), _c('div', {
- staticClass: ["group"]
- }, [_c('text', {
- staticClass: ["label"]
- }, [_vm._v("JS Framework")]), _c('text', {
- staticClass: ["value"]
- }, [_vm._v(_vm._s(_vm.jsfmVersion))])]), _c('div', {
- staticClass: ["group"]
- }, [_c('text', {
- staticClass: ["label"]
- }, [_vm._v("platform")]), _c('text', {
- staticClass: ["value"]
- }, [_vm._v(_vm._s(_vm.platform))])]), _c('div', {
- staticClass: ["group"]
- }, [_c('text', {
- staticClass: ["label"]
- }, [_vm._v("osVersion")]), _c('text', {
- staticClass: ["value"]
- }, [_vm._v(_vm._s(_vm.osVersion))])]), _c('div', {
- staticClass: ["group"]
- }, [_c('text', {
- staticClass: ["label"]
- }, [_vm._v("deviceModel")]), _c('text', {
- staticClass: ["value"]
- }, [_vm._v(_vm._s(_vm.deviceModel))])])])])
-},staticRenderFns: []}
-module.exports.render._withStripped = true
-
-/***/ }),
-/* 86 */
-/***/ (function(module, exports) {
-
-module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
- return _c('list', {
- staticClass: ["list"]
- }, [_c('cell', {
- appendAsTree: true,
- attrs: {
- "append": "tree"
- }
- }, [_c('app-info-card')], 1), _vm._l((_vm.aboutApp), function(item, i) {
- return _c('cell', {
- key: i,
- class: ['item-cell', ("item-cell-" + (i+1))],
- appendAsTree: true,
- attrs: {
- "append": "tree"
- }
- }, [(item.link) ? _c('div', {
- class: ['item', ("item-" + (i+1))],
- on: {
- "click": function($event) {
- _vm.jumpTo(item.link, _vm.i18n(item.title))
- }
- }
- }, [_c('text', {
- staticClass: ["item-title"]
- }, [_vm._v(_vm._s(_vm.i18n(item.title)))]), _c('image', {
- staticClass: ["arrow-icon"],
- attrs: {
- "src": "https://gw.alicdn.com/tfs/TB1iL2fkLDH8KJjy1XcXXcpdXXa-32-49.png"
- }
- })]) : _vm._e()])
- }), _c('cell', {
- staticClass: ["item-cell"],
- appendAsTree: true,
- attrs: {
- "append": "tree"
- }
- }, [_c('div', {
- staticClass: ["item"],
- on: {
- "click": _vm.chooseLanguage
- }
- }, [_c('text', {
- staticClass: ["item-title"]
- }, [_vm._v(_vm._s(_vm.i18n(_vm.dict.LANGUAGE)))]), _c('text', {
- staticClass: ["item-value"]
- }, [_vm._v(_vm._s(_vm.languageName))])])]), _vm._m(0)], 2)
-},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
- return _c('cell', {
- appendAsTree: true,
- attrs: {
- "append": "tree"
- }
- }, [_c('div', {
- staticClass: ["copyright"]
- }, [_c('text', {
- staticClass: ["copyright-text"]
- }, [_vm._v("Copyright(c) 2017 The Apache Software Foundation.")]), _c('text', {
- staticClass: ["copyright-text"]
- }, [_vm._v("Licensed under the Apache License, Version 2.0")])])])
-}]}
-module.exports.render._withStripped = true
-
-/***/ })
-/******/ ]);
\ No newline at end of file
diff --git a/ios/playground/bundlejs/examples.weex.js b/ios/playground/bundlejs/examples.weex.js
deleted file mode 100644
index 68d81c8..0000000
--- a/ios/playground/bundlejs/examples.weex.js
+++ /dev/null
@@ -1,2598 +0,0 @@
-// { "framework": "Vue" }
-"use weex:vue";
-
-/******/ (function(modules) { // webpackBootstrap
-/******/ // The module cache
-/******/ var installedModules = {};
-/******/
-/******/ // The require function
-/******/ function __webpack_require__(moduleId) {
-/******/
-/******/ // Check if module is in cache
-/******/ if(installedModules[moduleId]) {
-/******/ return installedModules[moduleId].exports;
-/******/ }
-/******/ // Create a new module (and put it into the cache)
-/******/ var module = installedModules[moduleId] = {
-/******/ i: moduleId,
-/******/ l: false,
-/******/ exports: {}
-/******/ };
-/******/
-/******/ // Execute the module function
-/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ // Flag the module as loaded
-/******/ module.l = true;
-/******/
-/******/ // Return the exports of the module
-/******/ return module.exports;
-/******/ }
-/******/
-/******/
-/******/ // expose the modules object (__webpack_modules__)
-/******/ __webpack_require__.m = modules;
-/******/
-/******/ // expose the module cache
-/******/ __webpack_require__.c = installedModules;
-/******/
-/******/ // define getter function for harmony exports
-/******/ __webpack_require__.d = function(exports, name, getter) {
-/******/ if(!__webpack_require__.o(exports, name)) {
-/******/ Object.defineProperty(exports, name, {
-/******/ configurable: false,
-/******/ enumerable: true,
-/******/ get: getter
-/******/ });
-/******/ }
-/******/ };
-/******/
-/******/ // getDefaultExport function for compatibility with non-harmony modules
-/******/ __webpack_require__.n = function(module) {
-/******/ var getter = module && module.__esModule ?
-/******/ function getDefault() { return module['default']; } :
-/******/ function getModuleExports() { return module; };
-/******/ __webpack_require__.d(getter, 'a', getter);
-/******/ return getter;
-/******/ };
-/******/
-/******/ // Object.prototype.hasOwnProperty.call
-/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ // __webpack_public_path__
-/******/ __webpack_require__.p = "";
-/******/
-/******/ // Load entry module and return exports
-/******/ return __webpack_require__(__webpack_require__.s = 37);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports) {
-
-// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
-var global = module.exports = typeof window != 'undefined' && window.Math == Math
- ? window : typeof self != 'undefined' && self.Math == Math ? self
- // eslint-disable-next-line no-new-func
- : Function('return this')();
-if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
-
-
-/***/ }),
-/* 1 */
-/***/ (function(module, exports) {
-
-var hasOwnProperty = {}.hasOwnProperty;
-module.exports = function (it, key) {
- return hasOwnProperty.call(it, key);
-};
-
-
-/***/ }),
-/* 2 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var dP = __webpack_require__(3);
-var createDesc = __webpack_require__(12);
-module.exports = __webpack_require__(4) ? function (object, key, value) {
- return dP.f(object, key, createDesc(1, value));
-} : function (object, key, value) {
- object[key] = value;
- return object;
-};
-
-
-/***/ }),
-/* 3 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var anObject = __webpack_require__(10);
-var IE8_DOM_DEFINE = __webpack_require__(29);
-var toPrimitive = __webpack_require__(17);
-var dP = Object.defineProperty;
-
-exports.f = __webpack_require__(4) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
- anObject(O);
- P = toPrimitive(P, true);
- anObject(Attributes);
- if (IE8_DOM_DEFINE) try {
- return dP(O, P, Attributes);
- } catch (e) { /* empty */ }
- if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
- if ('value' in Attributes) O[P] = Attributes.value;
- return O;
-};
-
-
-/***/ }),
-/* 4 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// Thank's IE8 for his funny defineProperty
-module.exports = !__webpack_require__(11)(function () {
- return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
-});
-
-
-/***/ }),
-/* 5 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// to indexed object, toObject with fallback for non-array-like ES3 strings
-var IObject = __webpack_require__(51);
-var defined = __webpack_require__(16);
-module.exports = function (it) {
- return IObject(defined(it));
-};
-
-
-/***/ }),
-/* 6 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var store = __webpack_require__(21)('wks');
-var uid = __webpack_require__(13);
-var Symbol = __webpack_require__(0).Symbol;
-var USE_SYMBOL = typeof Symbol == 'function';
-
-var $exports = module.exports = function (name) {
- return store[name] || (store[name] =
- USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
-};
-
-$exports.store = store;
-
-
-/***/ }),
-/* 7 */
-/***/ (function(module, exports) {
-
-var core = module.exports = { version: '2.5.7' };
-if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
-
-
-/***/ }),
-/* 8 */
-/***/ (function(module, exports) {
-
-module.exports = function (it) {
- return typeof it === 'object' ? it !== null : typeof it === 'function';
-};
-
-
-/***/ }),
-/* 9 */
-/***/ (function(module, exports) {
-
-module.exports = true;
-
-
-/***/ }),
-/* 10 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var isObject = __webpack_require__(8);
-module.exports = function (it) {
- if (!isObject(it)) throw TypeError(it + ' is not an object!');
- return it;
-};
-
-
-/***/ }),
-/* 11 */
-/***/ (function(module, exports) {
-
-module.exports = function (exec) {
- try {
- return !!exec();
- } catch (e) {
- return true;
- }
-};
-
-
-/***/ }),
-/* 12 */
-/***/ (function(module, exports) {
-
-module.exports = function (bitmap, value) {
- return {
- enumerable: !(bitmap & 1),
- configurable: !(bitmap & 2),
- writable: !(bitmap & 4),
- value: value
- };
-};
-
-
-/***/ }),
-/* 13 */
-/***/ (function(module, exports) {
-
-var id = 0;
-var px = Math.random();
-module.exports = function (key) {
- return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
-};
-
-
-/***/ }),
-/* 14 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.fetchNews = exports.fetchDoodle = exports.readAbout = exports.saveAbout = exports.fetchAbout = exports.readGuide = exports.saveGuide = exports.fetchGuide = exports.readExamples = exports.saveExamples = exports.fetchExamples = undefined;
-
-var _stringify = __webpack_require__(40);
-
-var _stringify2 = _interopRequireDefault(_stringify);
-
-var _typeof2 = __webpack_require__(42);
-
-var _typeof3 = _interopRequireDefault(_typeof2);
-
-exports.createLink = createLink;
-exports.createURL = createURL;
-exports.i18n = i18n;
-exports.parseLanguage = parseLanguage;
-exports.setLanguage = setLanguage;
-exports.clearStorageLanguage = clearStorageLanguage;
-exports.getStorageLanguage = getStorageLanguage;
-exports.getSystemLanguage = getSystemLanguage;
-exports.getLanguage = getLanguage;
-exports.jumpTo = jumpTo;
-exports.viewSource = viewSource;
-exports.setTitleBar = setTitleBar;
-exports.fetchData = fetchData;
-exports.saveData = saveData;
-exports.readData = readData;
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var stream = weex.requireModule('stream');
-var storage = weex.requireModule('storage');
-var navigator = weex.requireModule('navigator');
-
-var encoder = typeof encodeURIComponent === 'function' ? encodeURIComponent : typeof encodeURI === 'function' ? encodeURI : function (x) {
- return x;
-};
-
-function encodeParams(params) {
- if (!params || (typeof params === 'undefined' ? 'undefined' : (0, _typeof3.default)(params)) !== 'object') {
- return '';
- }
- var array = [];
- for (var key in params) {
- if (typeof params[key] === 'string') {
- array.push(encoder(key) + '=' + encoder(params[key]));
- }
- }
- return array.join('&');
-}
-
-function createLink(name) {
- var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- var args = [];
- for (var key in params) {
- if (typeof params[key] === 'string') {
- args.push(encoder(key) + '=' + encoder(params[key]));
- }
- }
- if (WXEnvironment.platform === 'Web') {
- args.unshift('page=' + name + '.web.js');
- return '/?' + args.join('&');
- }
- var base = getBaseURL();
- return '' + base + name + '.weex.js' + (args.length ? '?' + args.join('&') : '');
-}
-
-function createURL(hash, params) {
- if (WXEnvironment.platform === 'Web') {
- return 'http://dotwe.org/raw/htmlVue/' + hash;
- }
- var url = 'http://dotwe.org/raw/dist/' + hash + '.bundle.wx';
- var paramString = encodeParams(params);
- if (WXEnvironment.appName === 'TB') {
- return url + '?_wx_tpl=' + url + '&' + paramString;
- }
- if (WXEnvironment.appName === 'WXSample') {
- return url + '?' + paramString;
- }
- return url + '?wx_weex=true&' + paramString;
-}
-
-function getBaseURL() {
- var bundleUrl = weex.config.bundleUrl;
- var isAndroidAssets = bundleUrl.indexOf('your_current_IP') >= 0 || bundleUrl.indexOf('file://assets/') >= 0;
- var isiOSAssets = bundleUrl.indexOf('file:///') >= 0 && bundleUrl.indexOf('WeexDemo.app') > 0;
- if (isAndroidAssets) {
- return 'file://assets/';
- } else if (isiOSAssets) {
- // file:///var/mobile/Containers/Bundle/Application/{id}/WeexDemo.app/
- // file:///Users/{user}/Library/Developer/CoreSimulator/Devices/{id}/data/Containers/Bundle/Application/{id}/WeexDemo.app/
- return bundleUrl.substring(0, bundleUrl.lastIndexOf('/') + 1);
- }
- return '';
-}
-
-function i18n(text, language) {
- if (typeof text === 'string') {
- return text;
- }
- if (Object.prototype.toString.call(text) === '[object Object]') {
- var lang = this && this.language || language || 'en';
- return text[lang];
- }
-}
-
-var supportedLanguageRE = /(en|zh)\_?\w*/i;
-function parseLanguage(language) {
- var match = supportedLanguageRE.exec(language + '');
- if (match && match[1]) {
- return match[1];
- }
- return '';
-}
-
-function setLanguage(language) {
- var lang = parseLanguage(language);
- if (lang) {
- storage.setItem('WEEX_PLAYGROUND_LANGUAGE', lang);
- }
-}
-
-function clearStorageLanguage() {
- storage.removeItem('WEEX_PLAYGROUND_LANGUAGE');
-}
-
-function getStorageLanguage(done) {
- var fail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
-
- if (!(typeof done === 'undefined' ? 'undefined' : (0, _typeof3.default)(done)) === 'function') {
- return;
- }
- try {
- storage.getItem('WEEX_PLAYGROUND_LANGUAGE', function (event) {
- if (event.result === 'success') {
- var lang = parseLanguage(event.data);
- lang ? done(lang) : fail();
- } else {
- fail(event);
- }
- });
- } catch (err) {
- fail(err);
- }
-}
-
-function getSystemLanguage(done) {
- var fail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
-
- if (!(typeof done === 'undefined' ? 'undefined' : (0, _typeof3.default)(done)) === 'function') {
- return;
- }
- if (WXEnvironment.platform.toLowerCase() === 'web') {
- var lang = parseLanguage(window.navigator.language);
- lang ? done(lang) : fail();
- } else {
- try {
- var locale = weex.requireModule('locale') || weex.requireModule('local');
- var useSync = false;
- var resSync = locale.getLanguage(function (language) {
- var lang = parseLanguage(language);
- if (lang) {
- useSync || done(lang);
- } else {
- fail();
- }
- });
- var langSync = parseLanguage(resSync);
- if (langSync) {
- useSync = true;
- done(langSync);
- } else {
- fail();
- }
- } catch (e) {
- fail(e);
- }
- }
-}
-
-var languageRE = /.+[\?\&]{1}language=([\d\w]+)[\?\&]?.*/i;
-function getLanguage() {
- var done = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};
-
- var match = languageRE.exec(weex.config.bundleUrl || '');
- var lang = parseLanguage(match && match[1]);
- if (lang) {
- done(lang);
- } else {
- getStorageLanguage(done, function () {
- getSystemLanguage(done, function () {
- done('en');
- });
- });
- }
-}
-
-function jumpTo(url, title, lang) {
- getLanguage(function (language) {
- storage.setItem('CURRENT_DOCUMENT_URL', i18n(url, lang || language));
- navigator.push({
- url: createURL('bf0305c14b511b24a4e616f53926432b', { language: language, title: i18n(title, lang || language) })
- });
- });
-}
-
-function viewSource(hash) {
- getLanguage(function (language) {
- navigator.push({
- url: createURL('f6ce29faf686eabc38b410bf4828fa5a', { hash: hash, language: language })
- });
- });
-}
-
-function setTitleBar(options) {
- var language = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en';
-
- if (Object.prototype.toString.apply(options) !== '[object Object]') {
- return;
- }
- var titleBar = weex.requireModule('titleBar');
- if (options.color || options.backgroundColor) {
- try {
- titleBar.setStyle({
- foregroundColor: options.color || '#FFFFFF',
- backgroundColor: options.backgroundColor || '#00B4FF'
- });
- } catch (e) {}
- }
- var title = i18n(options.title, language);
- if (title) {
- try {
- titleBar.setTitle(title);
- } catch (e) {}
- }
-}
-
-var storageKeys = {
- doodle: 'WEEX_PLAYGROUND_APP_DOODLE',
- guide: 'WEEX_PLAYGROUND_APP_GUIDE',
- examples: 'WEEX_PLAYGROUND_APP_EXAMPLES',
- news: 'WEEX_PLAYGROUND_APP_NEWS',
- about: 'WEEX_PLAYGROUND_APP_ABOUT'
-};
-function fetchData(name) {
- var done = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
- var fail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};
-
- try {
- stream.fetch({
- url: 'http://dotwe.org/query/weex-playground-app',
- method: 'post',
- headers: {
- 'Content-Type': 'application/x-www-form-urlencoded'
- },
- type: 'json',
- body: 'name=' + name
- }, function (res) {
- if (res.ok && res.data && res.data.success) {
- done(res.data);
- } else {
- fail(res);
- }
- });
- } catch (err) {
- fail(err);
- }
-}
-function saveData(name, result) {
- var key = storageKeys[name];
- if (!key) return;
- if (result && (typeof result === 'undefined' ? 'undefined' : (0, _typeof3.default)(result)) === 'object') {
- result.timestamp = Date.now();
- storage.setItem(key, (0, _stringify2.default)(result));
- }
-}
-function readData(name) {
- var done = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
- var fail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};
-
- var key = storageKeys[name];
- if (!key) return fail();
- try {
- storage.getItem(key, function (event) {
- if (event.result === 'success') {
- var result = JSON.parse(event.data);
- if (result && Array.isArray(result[name])) {
- return done(result[name]);
- }
- }
- fail(event);
- });
- } catch (e) {
- fail(e);
- }
-}
-
-var fetchExamples = exports.fetchExamples = function fetchExamples() {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- return fetchData.apply(undefined, ['examples'].concat(args));
-};
-var saveExamples = exports.saveExamples = function saveExamples() {
- for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
- args[_key2] = arguments[_key2];
- }
-
- return saveData.apply(undefined, ['examples'].concat(args));
-};
-var readExamples = exports.readExamples = function readExamples() {
- for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
- args[_key3] = arguments[_key3];
- }
-
- return readData.apply(undefined, ['examples'].concat(args));
-};
-
-var fetchGuide = exports.fetchGuide = function fetchGuide() {
- for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
- args[_key4] = arguments[_key4];
- }
-
- return fetchData.apply(undefined, ['guide'].concat(args));
-};
-var saveGuide = exports.saveGuide = function saveGuide() {
- for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
- args[_key5] = arguments[_key5];
- }
-
- return saveData.apply(undefined, ['guide'].concat(args));
-};
-var readGuide = exports.readGuide = function readGuide() {
- for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
- args[_key6] = arguments[_key6];
- }
-
- return readData.apply(undefined, ['guide'].concat(args));
-};
-
-var fetchAbout = exports.fetchAbout = function fetchAbout() {
- for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
- args[_key7] = arguments[_key7];
- }
-
- return fetchData.apply(undefined, ['about'].concat(args));
-};
-var saveAbout = exports.saveAbout = function saveAbout() {
- for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
- args[_key8] = arguments[_key8];
- }
-
- return saveData.apply(undefined, ['about'].concat(args));
-};
-var readAbout = exports.readAbout = function readAbout() {
- for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
- args[_key9] = arguments[_key9];
- }
-
- return readData.apply(undefined, ['about'].concat(args));
-};
-
-var fetchDoodle = exports.fetchDoodle = function fetchDoodle() {
- for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {
- args[_key10] = arguments[_key10];
- }
-
- return fetchData.apply(undefined, ['doodle'].concat(args));
-};
-var fetchNews = exports.fetchNews = function fetchNews() {
- for (var _len11 = arguments.length, args = Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {
- args[_key11] = arguments[_key11];
- }
-
- return fetchData.apply(undefined, ['news'].concat(args));
-};
-
-/***/ }),
-/* 15 */
-/***/ (function(module, exports) {
-
-// 7.1.4 ToInteger
-var ceil = Math.ceil;
-var floor = Math.floor;
-module.exports = function (it) {
- return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
-};
-
-
-/***/ }),
-/* 16 */
-/***/ (function(module, exports) {
-
-// 7.2.1 RequireObjectCoercible(argument)
-module.exports = function (it) {
- if (it == undefined) throw TypeError("Can't call method on " + it);
- return it;
-};
-
-
-/***/ }),
-/* 17 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// 7.1.1 ToPrimitive(input [, PreferredType])
-var isObject = __webpack_require__(8);
-// instead of the ES6 spec version, we didn't implement @@toPrimitive case
-// and the second argument - flag - preferred type is a string
-module.exports = function (it, S) {
- if (!isObject(it)) return it;
- var fn, val;
- if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
- if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
- if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
- throw TypeError("Can't convert object to primitive value");
-};
-
-
-/***/ }),
-/* 18 */
-/***/ (function(module, exports) {
-
-module.exports = {};
-
-
-/***/ }),
-/* 19 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// 19.1.2.14 / 15.2.3.14 Object.keys(O)
-var $keys = __webpack_require__(33);
-var enumBugKeys = __webpack_require__(22);
-
-module.exports = Object.keys || function keys(O) {
- return $keys(O, enumBugKeys);
-};
-
-
-/***/ }),
-/* 20 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var shared = __webpack_require__(21)('keys');
-var uid = __webpack_require__(13);
-module.exports = function (key) {
- return shared[key] || (shared[key] = uid(key));
-};
-
-
-/***/ }),
-/* 21 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var core = __webpack_require__(7);
-var global = __webpack_require__(0);
-var SHARED = '__core-js_shared__';
-var store = global[SHARED] || (global[SHARED] = {});
-
-(module.exports = function (key, value) {
- return store[key] || (store[key] = value !== undefined ? value : {});
-})('versions', []).push({
- version: core.version,
- mode: __webpack_require__(9) ? 'pure' : 'global',
- copyright: '© 2018 Denis Pushkarev (zloirock.ru)'
-});
-
-
-/***/ }),
-/* 22 */
-/***/ (function(module, exports) {
-
-// IE 8- don't enum bug keys
-module.exports = (
- 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
-).split(',');
-
-
-/***/ }),
-/* 23 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var def = __webpack_require__(3).f;
-var has = __webpack_require__(1);
-var TAG = __webpack_require__(6)('toStringTag');
-
-module.exports = function (it, tag, stat) {
- if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
-};
-
-
-/***/ }),
-/* 24 */
-/***/ (function(module, exports, __webpack_require__) {
-
-exports.f = __webpack_require__(6);
-
-
-/***/ }),
-/* 25 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var global = __webpack_require__(0);
-var core = __webpack_require__(7);
-var LIBRARY = __webpack_require__(9);
-var wksExt = __webpack_require__(24);
-var defineProperty = __webpack_require__(3).f;
-module.exports = function (name) {
- var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
- if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
-};
-
-
-/***/ }),
-/* 26 */
-/***/ (function(module, exports) {
-
-exports.f = {}.propertyIsEnumerable;
-
-
-/***/ }),
-/* 27 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var LIBRARY = __webpack_require__(9);
-var $export = __webpack_require__(28);
-var redefine = __webpack_require__(31);
-var hide = __webpack_require__(2);
-var Iterators = __webpack_require__(18);
-var $iterCreate = __webpack_require__(49);
-var setToStringTag = __webpack_require__(23);
-var getPrototypeOf = __webpack_require__(56);
-var ITERATOR = __webpack_require__(6)('iterator');
-var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
-var FF_ITERATOR = '@@iterator';
-var KEYS = 'keys';
-var VALUES = 'values';
-
-var returnThis = function () { return this; };
-
-module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
- $iterCreate(Constructor, NAME, next);
- var getMethod = function (kind) {
- if (!BUGGY && kind in proto) return proto[kind];
- switch (kind) {
- case KEYS: return function keys() { return new Constructor(this, kind); };
- case VALUES: return function values() { return new Constructor(this, kind); };
- } return function entries() { return new Constructor(this, kind); };
- };
- var TAG = NAME + ' Iterator';
- var DEF_VALUES = DEFAULT == VALUES;
- var VALUES_BUG = false;
- var proto = Base.prototype;
- var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
- var $default = $native || getMethod(DEFAULT);
- var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
- var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
- var methods, key, IteratorPrototype;
- // Fix native
- if ($anyNative) {
- IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
- if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
- // Set @@toStringTag to native iterators
- setToStringTag(IteratorPrototype, TAG, true);
- // fix for some old engines
- if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
- }
- }
- // fix Array#{values, @@iterator}.name in V8 / FF
- if (DEF_VALUES && $native && $native.name !== VALUES) {
- VALUES_BUG = true;
- $default = function values() { return $native.call(this); };
- }
- // Define iterator
- if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
- hide(proto, ITERATOR, $default);
- }
- // Plug for library
- Iterators[NAME] = $default;
- Iterators[TAG] = returnThis;
- if (DEFAULT) {
- methods = {
- values: DEF_VALUES ? $default : getMethod(VALUES),
- keys: IS_SET ? $default : getMethod(KEYS),
- entries: $entries
- };
- if (FORCED) for (key in methods) {
- if (!(key in proto)) redefine(proto, key, methods[key]);
- } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
- }
- return methods;
-};
-
-
-/***/ }),
-/* 28 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var global = __webpack_require__(0);
-var core = __webpack_require__(7);
-var ctx = __webpack_require__(47);
-var hide = __webpack_require__(2);
-var has = __webpack_require__(1);
-var PROTOTYPE = 'prototype';
-
-var $export = function (type, name, source) {
- var IS_FORCED = type & $export.F;
- var IS_GLOBAL = type & $export.G;
- var IS_STATIC = type & $export.S;
- var IS_PROTO = type & $export.P;
- var IS_BIND = type & $export.B;
- var IS_WRAP = type & $export.W;
- var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
- var expProto = exports[PROTOTYPE];
- var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
- var key, own, out;
- if (IS_GLOBAL) source = name;
- for (key in source) {
- // contains in native
- own = !IS_FORCED && target && target[key] !== undefined;
- if (own && has(exports, key)) continue;
- // export native or passed
- out = own ? target[key] : source[key];
- // prevent global pollution for namespaces
- exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
- // bind timers to global for call from export context
- : IS_BIND && own ? ctx(out, global)
- // wrap global constructors for prevent change them in library
- : IS_WRAP && target[key] == out ? (function (C) {
- var F = function (a, b, c) {
- if (this instanceof C) {
- switch (arguments.length) {
- case 0: return new C();
- case 1: return new C(a);
- case 2: return new C(a, b);
... 9534 lines suppressed ...