diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..9382cfe7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +# Idea +.Idea + +# Xcode +*.xcuserstate +project.xcworkspace/ +xcuserdata/ + +# others +.git_old_branch diff --git a/IOS/Demo/lua/color1.png b/IOS/Demo/lua/candle/color1.png similarity index 100% rename from IOS/Demo/lua/color1.png rename to IOS/Demo/lua/candle/color1.png diff --git a/IOS/Demo/lua/color2.png b/IOS/Demo/lua/candle/color2.png similarity index 100% rename from IOS/Demo/lua/color2.png rename to IOS/Demo/lua/candle/color2.png diff --git a/IOS/Demo/lua/candle/init.lua b/IOS/Demo/lua/candle/init.lua new file mode 100644 index 00000000..454c0489 --- /dev/null +++ b/IOS/Demo/lua/candle/init.lua @@ -0,0 +1,140 @@ +local candle = { + bodyImage = "candle/lazhu.png", + fireStartImage = "candle/color1.png", + fireEndImage = "candle/color2.png", + fireCount = 20 +} + +local r = 40 + +function candle.new(x, y, count) + local instance = {} + + instance.view = View() + instance.view.frame(x, y, 90, 180) + + instance.body = Image() + instance.body.image(self.bodyImage) + instance.body.adjustSize() + instance.body.frame(13, 70, 64, 104) + instance.view.addView(instance.body) + + instance.fires = {} + if count == nil then + count = self.fireCount + end + for i = 1, count do + instance.fires[i] = self.createFire(45, 63) + instance.view.addView(instance.fires[i].bg) + end + + function instance.start() + if self.timer ~= nil or self.fires[1].animating then + return + end + + local index = 1 + self.timer = Timer( + function() + if index < #instance.fires then + self.fires[index].animating = true + self.fires[index].showfires() + index = index + 1 + else + self.timer.cancel() + self.timer = nil + end + end + ) + + self.timer.start(0.1, true) + end + + function instance.stop() + if self.timer then + self.timer.stop() + self.timer = nil + end + + for i, v in ipairs(self.fires) do + v.animating = false + end + end + + function instance.move(dx, dy) + local x, y = self.view.center() + self.view.center(x + dx, y + dy) + end + + return instance +end + +function candle.createFire(x, y) + local fire = {} + fire.animating = false + + fire.imageView1 = Image() + fire.imageView2 = Image() + fire.imageView1.image(self.fireStartImage) + fire.imageView2.image(self.fireEndImage) + fire.imageView1.frame(0,0,r*2,r*2) + fire.imageView2.frame(0,0,r*2,r*2) + + fire.bg = View() + fire.bg.frame(0,0,r*2,r*2) + fire.bg.addView(fire.imageView1) + fire.bg.addView(fire.imageView2) + + function fire.resetViews() + self.bg.scale(1, 1) + self.bg.size( r*2, r*2) + self.bg.alpha( 0.5) + + local x0 = math:random(x, x + r*0.1) + local y0 = math:random(y, y + r*0.3) + + self.bg.center(x0,y0) + self.x = x0 + self.y = y0 + + self.imageView1.alpha( 1) + self.imageView2.alpha( 0) + end + + function fire.randomPositionDelta() + local len = 30 + local dx = math:random(-len,len) + local maxDy = math:sqrt( (len*len*2 - dx*dx) )*2 + local dy = math:random( -maxDy, 0 ) + + return dx, dy + end + + function fire.showfires() + self.resetViews() + + local x, y = self.bg.center() + local dx, dy = self.randomPositionDelta() + local time = math:random(15,20)/10.0 + Animate(time, + function () + self.bg.scale( 0.2, 0.4 ) + self.bg.center(x + dx, y + dy) + self.imageView1.alpha(0) + self.imageView2.alpha(1) + self.bg.alpha(0) + end, + function () + if self.animating then + self.showfires() + end + end + ) + end + + fire.bg.alpha(0) + + return fire +end + +return candle diff --git a/IOS/Demo/lua/lazhu.png b/IOS/Demo/lua/candle/lazhu.png similarity index 100% rename from IOS/Demo/lua/lazhu.png rename to IOS/Demo/lua/candle/lazhu.png diff --git a/IOS/Demo/lua/demoP_System.lua b/IOS/Demo/lua/demoP_System.lua index df82b14f..de1766e6 100644 --- a/IOS/Demo/lua/demoP_System.lua +++ b/IOS/Demo/lua/demoP_System.lua @@ -26,3 +26,11 @@ myprint("System.scale = ", System.scale() ) --获取屏幕分辨率 myprint("System.device = ", System.device() ) --获取设备信息 myprint("System.screenSize() = ", System.screenSize() ); myprint("---end---",nil); + +window.callback({ + ViewDidAppear = function () + System.keepScreenOn(true);-- 屏幕常亮 + end, + ViewDidDisAppear = function () + System.keepScreenOn(false);-- 屏幕不常亮 + end}) diff --git a/IOS/Demo/lua/demoU_Http.lua b/IOS/Demo/lua/demoU_Http.lua deleted file mode 100644 index 0a15603e..00000000 --- a/IOS/Demo/lua/demoU_Http.lua +++ /dev/null @@ -1,27 +0,0 @@ - -http = Http(); - -http.get( - "http://tmsprepub.alicdn.com/market/3c/quanqiutms.php", - - function(response) - print( "responseStatusCode:",response.statusCode() ); - print( "headerFields:",response.headerFields() ); - data = response.data(); - print("ok: " .. tostring(data) ) - end -) - -http2 = Http(); -http2.post( - "https://login-test.alibaba-inc.com/authorize/login.do",--url - {--http post数据 - appcode="123456", - name="taobao-hz\xicheng.dxc", - password="dxc123", - authtype="system" - }, - function(response)--http 返回的数据 - print(response.data() ); - end -); \ No newline at end of file diff --git a/IOS/Demo/lua/demoZA1_AnimateFire.lua b/IOS/Demo/lua/demoZA1_AnimateFire.lua index cf06bc2c..5af15a92 100644 --- a/IOS/Demo/lua/demoZA1_AnimateFire.lua +++ b/IOS/Demo/lua/demoZA1_AnimateFire.lua @@ -1,108 +1,3 @@ - -scrW, scrH = System.screenSize(); - -window.frame(0, 0, scrW, scrH); -window.backgroundColor(0xffffff,1); -window.enabled(true); - - - -local percent = 1; -local r = 40*percent; - -local bodyX0 = scrW/2; -local bodyY0 = scrH/2; - -lazhuBody = Image(); -lazhuBody.frame( bodyX0 - 64*0.45, bodyY0 + r*0.5, 64, 104); -lazhuBody.image("lazhu.png"); - - -------------------------------- -function fireCreater() - local fire = {}; - fire.times = 0; - - fire.imageView1 = Image(); - fire.imageView2 = Image(); - fire.imageView1.image("color1.png"); - fire.imageView2.image("color2.png"); - fire.imageView1.frame(0,0,r*2,r*2); - fire.imageView2.frame(0,0,r*2,r*2); - - fire.bg = View(); - fire.bg.frame(0,0,r*2,r*2); - fire.bg.addView(fire.imageView1); - fire.bg.addView(fire.imageView2); - - function fire.initX0Y0() - self.bg.scale(1, 1); - self.bg.size( r*2, r*2); - self.bg.alpha( 0.5); - - local x0 = math:random(bodyX0, bodyX0 + r*0.1); - local y0 = math:random(bodyY0, bodyY0 + r*0.3); - - self.bg.center(x0,y0); - self.x = x0; - self.y = y0; - - self.imageView1.alpha( 1); - self.imageView2.alpha( 0); - end - - function fire.move() - self.bg.center( self.x, self.y ); - self.bg.scale( 0.2, 0.4 ); - self.imageView1.alpha(0); - self.imageView2.alpha(1); - self.bg.alpha(0); - end - - function fire.nextXYAndColor() - local len = 30*percent; - local dx = math:random(-len,len); - local maxDy = math:sqrt( (len*len*2 - dx*dx) )*2; - local dy = math:random( -maxDy, 0 ); - local x,y = self.bg.center(); - self.x = x+dx; - self.y = y+dy; - end - - function fire.showfires() - self.initX0Y0(); - self.nextXYAndColor(); - - local time = math:random(15,20)/10.0; - Animate(time, - function () - self.move(); - end - , - function () - self.showfires(); - end - ); - end - - return fire; -end -------------------------------------- -fireArr = {}; - -index = 1; -fireTimer = Timer( - function() - if (index<20 ) then - index = index+1; - fireArr[index] = fireCreater(); - fireArr[index].showfires(); - else - fireTimer.cancel(); - end - end -); - -fireTimer.start(0.1, true); - - +candle = require("candle.init") +instance = candle.new(100, 100, 200, 300) +instance.start() diff --git a/IOS/Demo/lua/demoZA2_AnimateFire2.lua b/IOS/Demo/lua/demoZA2_AnimateFire2.lua index 57b1805c..915eb2f3 100644 --- a/IOS/Demo/lua/demoZA2_AnimateFire2.lua +++ b/IOS/Demo/lua/demoZA2_AnimateFire2.lua @@ -1,163 +1,53 @@ - -scrW, scrH = System.screenSize(); - -window.frame(0, 0, scrW, scrH); -window.backgroundColor(0xffffff,1); -window.enabled(true); - - - -function createLaZhu(x,y) - local lazhu = {}; - - local percent = 1; - local r = 40*percent; - - local bodyX0 = x; - local bodyY0 = y; - local fireArr = {}; - - lazhu.lazhuBodyBG = View(); - lazhu.lazhuBody = Image(); - lazhu.lazhuBody.frame(0, 0, 64, 104); - lazhu.lazhuBodyBG.frame( bodyX0 - 64*0.45, bodyY0 + r*0.5, 64, 104); - lazhu.lazhuBody.image("lazhu.png"); - lazhu.lazhuBodyBG.addView(lazhu.lazhuBody); - - lazhu.onOff = true; - lazhu.button = Button(); - lazhu.button.title("开/关"); - lazhu.button.backgroundColor(0xff0000,1); - lazhu.button.frame(0, 50, 64, 60); - lazhu.button.callback( function() - if( lazhu.onOff ) then - lazhu.onOff = false; - else - lazhu.onOff = true; - for index = 1, 20 do - fireArr[index].showfires(); - end - end - end); - lazhu.lazhuBodyBG.addView(lazhu.button); - - function lazhu.move( dx,dy ) - bodyX0 = bodyX0 + dx; - bodyY0 = bodyY0 + dy; - self.lazhuBodyBG.frame( bodyX0 - 64*0.45, bodyY0 + r*0.5, 64, 104); - end - - - ------------------------------- - function lazhu.fireCreater() - local fire = {}; - fire.times = 0; - - fire.imageView1 = Image(); - fire.imageView2 = Image(); - fire.imageView1.image("color1.png"); - fire.imageView2.image("color2.png"); - fire.imageView1.frame(0,0,r*2,r*2); - fire.imageView2.frame(0,0,r*2,r*2); - - fire.bg = View(); - fire.bg.frame(0,0,r*2,r*2); - fire.bg.addView(fire.imageView1); - fire.bg.addView(fire.imageView2); - - function fire.initX0Y0() - self.bg.scale( 1, 1); - self.bg.size( r*2, r*2); - self.bg.alpha( 0.5); - - local x0 = math:random(bodyX0, bodyX0 + r*0.1); - local y0 = math:random(bodyY0, bodyY0 + r*0.3); - - self.bg.center(x0,y0); - self.x = x0; - self.y = y0; - - self.imageView1.alpha( 1); - self.imageView2.alpha( 0); - end - - function fire.move() - self.bg.center( self.x, self.y ); - self.bg.scale( 0.2, 0.4); - self.imageView1.alpha(0); - self.imageView2.alpha(1); - self.bg.alpha(0); - end - - function fire.nextXYAndColor() - local len = 30*percent; - local dx = math:random(-len,len); - local maxDy = math:sqrt( (len*len*2 - dx*dx) )*2; - local dy = math:random( -maxDy, 0 ); - local x,y = self.bg.center(); - self.x = x+dx; - self.y = y+dy; - end - function fire.showfires() - self.initX0Y0(); - self.nextXYAndColor(); - - local time = math:random(7,10)/10.0; - Animate(time, - function () - self.move(); - end - , - function () - if( lazhu.onOff ) then - self.showfires(); - end - end - ); - end - - return fire; - end - ------------------------------------- - - local index = 1; - lazhu.fireTimer = Timer( - function() - if (index<=20 ) then - fireArr[index] = lazhu.fireCreater(); - fireArr[index].showfires(); - index = index+1; - else - lazhu.fireTimer.cancel(); - end - end - ); - - lazhu.fireTimer.start(0.1, true); - return lazhu; +local candle = require("candle.init") + +function addSwitch(instance) + instance.onOff = false + + instance.switch = Button() + instance.switch.title("开") + instance.switch.backgroundColor(0xff0000,1) + instance.switch.frame( + (instance.view.width() - instance.body.width()) / 2, + 120, + instance.body.width(), + 40 + ) + instance.switch.callback( function() + if( instance.onOff ) then + instance.onOff = false + instance.switch.title("开") + instance.stop() + else + instance.onOff = true + instance.switch.title("关") + instance.start() + end + end) + + instance.view.addView(instance.switch) + + return instance end -lazhu1 = createLaZhu(50,200); -lazhu2 = createLaZhu(160,200); -lazhu3 = createLaZhu(260,200); - - - - dragGesture = PanGesture( - function( g ) - local state = g.state(); - if( state == GestureState.BEGIN ) then - gestureX, gestureY = g.location(); - elseif( state == GestureState.CHANGED ) then - local x, y = g.location(); - local dx = x- gestureX; - local dy = y- gestureY; - gestureX = x; - gestureY = y; - lazhu2.move(dx,dy); - end - end - ); - - window.addGesture(dragGesture); +lazhu1 = addSwitch(candle.new(50,200)) +lazhu2 = addSwitch(candle.new(160,200)) +lazhu3 = addSwitch(candle.new(260,200)) + +dragGesture = PanGesture( + function( g ) + local state = g.state() + if( state == GestureState.BEGIN ) then + gestureX, gestureY = g.location() + elseif( state == GestureState.CHANGED ) then + local x, y = g.location() + local dx = x- gestureX + local dy = y- gestureY + gestureX = x + gestureY = y + lazhu2.move(dx,dy) + end + end +) + +window.addGesture(dragGesture) diff --git a/IOS/Demo/lua/demoZ_testunit.lua b/IOS/Demo/lua/demoZ_testunit.lua index 11801142..f1d93abe 100644 --- a/IOS/Demo/lua/demoZ_testunit.lua +++ b/IOS/Demo/lua/demoZ_testunit.lua @@ -79,22 +79,6 @@ demoArray = { ); end, - function() - Http:post( - "https://login-test.alibaba-inc.com/authorize/login.do",--url - nil,--http头信息 - {--http post数据 - appcode="123456", - name="taobao-hz\xicheng.dxc", - password="dxc123", - authtype="system" - }, - function(request)--http 返回的数据 - print(request.data() ); - end - ); - end, - function() imageView = Image(); imageView.image(imageUrl); diff --git a/IOS/Demo/test/testUIRefreshTableView.lua b/IOS/Demo/test/testUIRefreshTableView.lua index 8be304d8..f538ae8b 100644 --- a/IOS/Demo/test/testUIRefreshTableView.lua +++ b/IOS/Demo/test/testUIRefreshTableView.lua @@ -9,29 +9,6 @@ loading.size(200, 200) loading.alignCenter() loading.show() ---获取数据 -local mtop = Mtop({ - method = "mtop.ju.block.optionminisite.get", - version = "1.0", - params = { - platformId = "8001", - page = 1, - pageSize = 1000 - } -}, - function(data, error) - blockData = data - -- print(table:getn(blockData.model)) - printTable(blockData.model[1].materials) - -- printTable(blockData) - if (tableView) then - tableView.reload() - end - - loading.hide() - end) -mtop.request() - tableView = RefreshTableView { Section = { SectionCount = 1, -- section数量 diff --git a/IOS/Demo/test/testUITableView.lua b/IOS/Demo/test/testUITableView.lua index d44c4e90..272cacf7 100644 --- a/IOS/Demo/test/testUITableView.lua +++ b/IOS/Demo/test/testUITableView.lua @@ -9,29 +9,6 @@ loading.size(200, 200) loading.alignCenter() loading.show() ---获取数据 -local mtop = Mtop({ - method = "mtop.ju.block.optionminisite.get", - version = "1.0", - params = { - platformId = "8001", - page = 1, - pageSize = 1000 - } -}, - function(data, error) - blockData = data - -- print(table:getn(blockData.model)) - printTable(blockData.model[1].materials) - -- printTable(blockData) - if (tableView) then - tableView.reload() - end - - loading.hide() - end) - -mtop.request() tableView = TableView { Section = { diff --git a/IOS/LuaViewSDK.xcodeproj/project.pbxproj b/IOS/LuaViewSDK.xcodeproj/project.pbxproj index a6910c2e..256b91ac 100644 --- a/IOS/LuaViewSDK.xcodeproj/project.pbxproj +++ b/IOS/LuaViewSDK.xcodeproj/project.pbxproj @@ -10,6 +10,7 @@ 3C02D1D91C31106E00213386 /* LVAnimator.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C02D1D71C31106E00213386 /* LVAnimator.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3C02D1DA1C31106E00213386 /* LVAnimator.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C02D1D81C31106E00213386 /* LVAnimator.m */; }; 3C02D1DC1C31281C00213386 /* demoZB1_Animator.lua in Resources */ = {isa = PBXBuildFile; fileRef = 3C02D1DB1C31281C00213386 /* demoZB1_Animator.lua */; }; + 3CB5B1621C489CF700E66C91 /* candle in Resources */ = {isa = PBXBuildFile; fileRef = 3CB5B1611C489CF700E66C91 /* candle */; }; 539AD374E91F407031F9272B /* libPods-Demo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D1D7913A587AD4124F9407CC /* libPods-Demo.a */; }; 840870851BE9DB47004CADB7 /* demoZ_2015_testunit.lua in Resources */ = {isa = PBXBuildFile; fileRef = 840870841BE9DB47004CADB7 /* demoZ_2015_testunit.lua */; }; 840AD5D01A5EB9CF0075CB58 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8418E3B41A5E804700158125 /* Main.storyboard */; }; @@ -53,8 +54,6 @@ 84799AD61BAFDDA00070E214 /* bg_home_category_right_shadow@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 84799AB11BAFDDA00070E214 /* bg_home_category_right_shadow@3x.png */; }; 84799AD71BAFDDA00070E214 /* demoZ2_callOC.lua in Resources */ = {isa = PBXBuildFile; fileRef = 84799AB21BAFDDA00070E214 /* demoZ2_callOC.lua */; }; 84799AD81BAFDDA00070E214 /* demoH2_CollectionView.lua in Resources */ = {isa = PBXBuildFile; fileRef = 84799AB31BAFDDA00070E214 /* demoH2_CollectionView.lua */; }; - 84799AD91BAFDDA00070E214 /* color1.png in Resources */ = {isa = PBXBuildFile; fileRef = 84799AB41BAFDDA00070E214 /* color1.png */; }; - 84799ADA1BAFDDA00070E214 /* color2.png in Resources */ = {isa = PBXBuildFile; fileRef = 84799AB51BAFDDA00070E214 /* color2.png */; }; 84799ADB1BAFDDA00070E214 /* demoO_coroutineDemo.lua in Resources */ = {isa = PBXBuildFile; fileRef = 84799AB61BAFDDA00070E214 /* demoO_coroutineDemo.lua */; }; 84799ADD1BAFDDA00070E214 /* demoE_Button.lua in Resources */ = {isa = PBXBuildFile; fileRef = 84799AB81BAFDDA00070E214 /* demoE_Button.lua */; }; 84799ADE1BAFDDA00070E214 /* demoZ_testunit.lua in Resources */ = {isa = PBXBuildFile; fileRef = 84799AB91BAFDDA00070E214 /* demoZ_testunit.lua */; }; @@ -63,7 +62,6 @@ 84799AE11BAFDDA00070E214 /* demoY2_flxNode.lua in Resources */ = {isa = PBXBuildFile; fileRef = 84799ABC1BAFDDA00070E214 /* demoY2_flxNode.lua */; }; 84799AE21BAFDDA00070E214 /* demoA_Image.lua in Resources */ = {isa = PBXBuildFile; fileRef = 84799ABD1BAFDDA00070E214 /* demoA_Image.lua */; }; 84799AE31BAFDDA00070E214 /* JHSIconfont.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 84799ABE1BAFDDA00070E214 /* JHSIconfont.ttf */; }; - 84799AE41BAFDDA00070E214 /* lazhu.png in Resources */ = {isa = PBXBuildFile; fileRef = 84799ABF1BAFDDA00070E214 /* lazhu.png */; }; 84799AE51BAFDDA00070E214 /* demoW1_shake.lua in Resources */ = {isa = PBXBuildFile; fileRef = 84799AC01BAFDDA00070E214 /* demoW1_shake.lua */; }; 84799AE61BAFDDA00070E214 /* snow.png in Resources */ = {isa = PBXBuildFile; fileRef = 84799AC11BAFDDA00070E214 /* snow.png */; }; 84799AE71BAFDDA00070E214 /* demoP_string.lua in Resources */ = {isa = PBXBuildFile; fileRef = 84799AC21BAFDDA00070E214 /* demoP_string.lua */; }; @@ -79,7 +77,6 @@ 847BE9071C0E97AF008776E9 /* line.png in Resources */ = {isa = PBXBuildFile; fileRef = 847BE9041C0E97AF008776E9 /* line.png */; }; 847BE9081C0E97AF008776E9 /* hongbao.png in Resources */ = {isa = PBXBuildFile; fileRef = 847BE9051C0E97AF008776E9 /* hongbao.png */; }; 847BE90A1C0EA493008776E9 /* close.png in Resources */ = {isa = PBXBuildFile; fileRef = 847BE9091C0EA493008776E9 /* close.png */; }; - 8480C71E1C059BA70081B8A3 /* demoU_Http.lua in Resources */ = {isa = PBXBuildFile; fileRef = 8480C71D1C059BA70081B8A3 /* demoU_Http.lua */; }; 8480F0B71BFC1880005DB2AE /* demoA_ImageAnimate.lua in Resources */ = {isa = PBXBuildFile; fileRef = 8480F0B61BFC1880005DB2AE /* demoA_ImageAnimate.lua */; }; 8481E0511BD5DADD00FDFEEA /* demoG_RefreshTableView.lua in Resources */ = {isa = PBXBuildFile; fileRef = 8481E0501BD5DADD00FDFEEA /* demoG_RefreshTableView.lua */; }; 8481E0531BD6690A00FDFEEA /* demoK_ScrollView.lua in Resources */ = {isa = PBXBuildFile; fileRef = 8481E0521BD6690A00FDFEEA /* demoK_ScrollView.lua */; }; @@ -290,6 +287,9 @@ 84C1D8A61C17055C0058E974 /* enter10.png in Resources */ = {isa = PBXBuildFile; fileRef = 84C1D8A41C17055C0058E974 /* enter10.png */; }; 84C1D8A71C17055C0058E974 /* enter11.png in Resources */ = {isa = PBXBuildFile; fileRef = 84C1D8A51C17055C0058E974 /* enter11.png */; }; 84CC63801BB16AF300613B74 /* fire.zip in Resources */ = {isa = PBXBuildFile; fileRef = 84CC637F1BB16AF300613B74 /* fire.zip */; }; + 84CCB7F71C578EFD00584CF5 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84CCB7F61C578EFD00584CF5 /* AVFoundation.framework */; }; + 84CCB7F81C578F5000584CF5 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 845F377C1C578D9A00DD38EA /* AudioToolbox.framework */; }; + 84CCB7FA1C578F8900584CF5 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84CCB7F91C578F8900584CF5 /* Accelerate.framework */; }; 84DAB9C61C3A616800943A48 /* demoZ_decodeUrl.lua in Resources */ = {isa = PBXBuildFile; fileRef = 84DAB9C51C3A616800943A48 /* demoZ_decodeUrl.lua */; }; 84E85C1A1C33B84B007DE3DF /* LVPackage.h in Headers */ = {isa = PBXBuildFile; fileRef = 84E85C181C33B84B007DE3DF /* LVPackage.h */; settings = {ATTRIBUTES = (Public, ); }; }; 84E85C1C1C33B84B007DE3DF /* LVPackage.m in Sources */ = {isa = PBXBuildFile; fileRef = 84E85C191C33B84B007DE3DF /* LVPackage.m */; }; @@ -343,6 +343,7 @@ 3C02D1D71C31106E00213386 /* LVAnimator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVAnimator.h; sourceTree = ""; }; 3C02D1D81C31106E00213386 /* LVAnimator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVAnimator.m; sourceTree = ""; }; 3C02D1DB1C31281C00213386 /* demoZB1_Animator.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = demoZB1_Animator.lua; sourceTree = ""; }; + 3CB5B1611C489CF700E66C91 /* candle */ = {isa = PBXFileReference; lastKnownFileType = folder; path = candle; sourceTree = ""; }; 54B6EDD5D78058D3F68F371A /* Pods-LuaViewSDK.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LuaViewSDK.debug.xcconfig"; path = "Pods/Target Support Files/Pods-LuaViewSDK/Pods-LuaViewSDK.debug.xcconfig"; sourceTree = ""; }; 778CF8AEA1F4013D47A3BD6E /* Pods-Demo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Demo.release.xcconfig"; path = "Pods/Target Support Files/Pods-Demo/Pods-Demo.release.xcconfig"; sourceTree = ""; }; 8405078B1ADF8F7300906BAC /* podinstall.text */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = podinstall.text; sourceTree = ""; }; @@ -459,6 +460,7 @@ 8454D1401A7F732500774565 /* LVHttp.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVHttp.m; sourceTree = ""; }; 8454D1441A7FA7A400774565 /* LVHttpResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVHttpResponse.h; sourceTree = ""; }; 8454D1451A7FA7A400774565 /* LVHttpResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVHttpResponse.m; sourceTree = ""; }; + 845F377C1C578D9A00DD38EA /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; 846481A61A64C61F00DE6204 /* LVAnimate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVAnimate.h; sourceTree = ""; }; 846481A71A64C61F00DE6204 /* LVAnimate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVAnimate.m; sourceTree = ""; }; 846481A81A64C61F00DE6204 /* LVBaseView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVBaseView.h; sourceTree = ""; }; @@ -526,8 +528,6 @@ 84799AB11BAFDDA00070E214 /* bg_home_category_right_shadow@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "bg_home_category_right_shadow@3x.png"; sourceTree = ""; }; 84799AB21BAFDDA00070E214 /* demoZ2_callOC.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = demoZ2_callOC.lua; sourceTree = ""; }; 84799AB31BAFDDA00070E214 /* demoH2_CollectionView.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = demoH2_CollectionView.lua; sourceTree = ""; }; - 84799AB41BAFDDA00070E214 /* color1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = color1.png; sourceTree = ""; }; - 84799AB51BAFDDA00070E214 /* color2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = color2.png; sourceTree = ""; }; 84799AB61BAFDDA00070E214 /* demoO_coroutineDemo.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = demoO_coroutineDemo.lua; sourceTree = ""; }; 84799AB81BAFDDA00070E214 /* demoE_Button.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = demoE_Button.lua; sourceTree = ""; }; 84799AB91BAFDDA00070E214 /* demoZ_testunit.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = demoZ_testunit.lua; sourceTree = ""; }; @@ -536,7 +536,6 @@ 84799ABC1BAFDDA00070E214 /* demoY2_flxNode.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = demoY2_flxNode.lua; sourceTree = ""; }; 84799ABD1BAFDDA00070E214 /* demoA_Image.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = demoA_Image.lua; sourceTree = ""; }; 84799ABE1BAFDDA00070E214 /* JHSIconfont.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = JHSIconfont.ttf; sourceTree = ""; }; - 84799ABF1BAFDDA00070E214 /* lazhu.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lazhu.png; sourceTree = ""; }; 84799AC01BAFDDA00070E214 /* demoW1_shake.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = demoW1_shake.lua; sourceTree = ""; }; 84799AC11BAFDDA00070E214 /* snow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = snow.png; sourceTree = ""; }; 84799AC21BAFDDA00070E214 /* demoP_string.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = demoP_string.lua; sourceTree = ""; }; @@ -556,7 +555,6 @@ 847BE9041C0E97AF008776E9 /* line.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = line.png; sourceTree = ""; }; 847BE9051C0E97AF008776E9 /* hongbao.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = hongbao.png; sourceTree = ""; }; 847BE9091C0EA493008776E9 /* close.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = close.png; sourceTree = ""; }; - 8480C71D1C059BA70081B8A3 /* demoU_Http.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = demoU_Http.lua; sourceTree = ""; }; 8480F0B61BFC1880005DB2AE /* demoA_ImageAnimate.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = demoA_ImageAnimate.lua; sourceTree = ""; }; 8481E0501BD5DADD00FDFEEA /* demoG_RefreshTableView.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = demoG_RefreshTableView.lua; sourceTree = ""; }; 8481E0521BD6690A00FDFEEA /* demoK_ScrollView.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = demoK_ScrollView.lua; sourceTree = ""; }; @@ -615,6 +613,11 @@ 84C3B7281A84622A00923404 /* LVData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVData.h; sourceTree = ""; }; 84C3B7291A84622A00923404 /* LVData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVData.m; sourceTree = ""; }; 84CC637F1BB16AF300613B74 /* fire.zip */ = {isa = PBXFileReference; lastKnownFileType = archive.zip; path = fire.zip; sourceTree = ""; }; + 84CCB7F01C578E0F00584CF5 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; + 84CCB7F21C578E3B00584CF5 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; }; + 84CCB7F41C578E4D00584CF5 /* CoreAudioKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; }; + 84CCB7F61C578EFD00584CF5 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + 84CCB7F91C578F8900584CF5 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; 84CF566C1AE8EC3D00A49B36 /* LVExternalLinker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVExternalLinker.h; sourceTree = ""; }; 84CF566D1AE8EC3D00A49B36 /* LVExternalLinker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVExternalLinker.m; sourceTree = ""; }; 84CF56731AE9184000A49B36 /* LVNativeObjBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVNativeObjBox.h; sourceTree = ""; }; @@ -671,6 +674,9 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 84CCB7FA1C578F8900584CF5 /* Accelerate.framework in Frameworks */, + 84CCB7F81C578F5000584CF5 /* AudioToolbox.framework in Frameworks */, + 84CCB7F71C578EFD00584CF5 /* AVFoundation.framework in Frameworks */, 84C1D8A31C16CEBB0058E974 /* LuaViewSDK.framework in Frameworks */, 8478D7DB1B9DA80E00DE9EFF /* libz.1.2.5.dylib in Frameworks */, 84B1E3851AEF2ED90054B9F1 /* Security.framework in Frameworks */, @@ -1013,6 +1019,7 @@ 84799AA41BAFDDA00070E214 /* lua */ = { isa = PBXGroup; children = ( + 3CB5B1611C489CF700E66C91 /* candle */, 84799ABD1BAFDDA00070E214 /* demoA_Image.lua */, 8480F0B61BFC1880005DB2AE /* demoA_ImageAnimate.lua */, 84799AAF1BAFDDA00070E214 /* demoC_Label.lua */, @@ -1031,7 +1038,6 @@ 84FC64D11BB399A500B6AF86 /* demoO_Timer.lua */, 84799AC21BAFDDA00070E214 /* demoP_string.lua */, 84799AC31BAFDDA00070E214 /* demoP_System.lua */, - 8480C71D1C059BA70081B8A3 /* demoU_Http.lua */, 849832101BCB682F0032BF05 /* demoV1_CustomError.lua */, 849832111BCB682F0032BF05 /* demoV1_Customloading.lua */, 84799AC01BAFDDA00070E214 /* demoW1_shake.lua */, @@ -1052,9 +1058,6 @@ 84799AB01BAFDDA00070E214 /* bg_home_category_right_shadow@2x.png */, 84799AB11BAFDDA00070E214 /* bg_home_category_right_shadow@3x.png */, 8446F1601BDF5B54007E4064 /* bt_catebrand_more.9.png */, - 84799AB41BAFDDA00070E214 /* color1.png */, - 84799AB51BAFDDA00070E214 /* color2.png */, - 84799ABF1BAFDDA00070E214 /* lazhu.png */, 84799AC11BAFDDA00070E214 /* snow.png */, 84799AA51BAFDDA00070E214 /* img1.tiff */, 84799AA91BAFDDA00070E214 /* img4.tiff */, @@ -1298,6 +1301,12 @@ 8DF50822C3B250E24CAD9EC1 /* Frameworks */ = { isa = PBXGroup; children = ( + 84CCB7F91C578F8900584CF5 /* Accelerate.framework */, + 84CCB7F61C578EFD00584CF5 /* AVFoundation.framework */, + 84CCB7F41C578E4D00584CF5 /* CoreAudioKit.framework */, + 84CCB7F21C578E3B00584CF5 /* AudioUnit.framework */, + 84CCB7F01C578E0F00584CF5 /* CoreAudio.framework */, + 845F377C1C578D9A00DD38EA /* AudioToolbox.framework */, 84C1D88B1C16C5780058E974 /* Foundation.framework */, 84C1D7981C16B46D0058E974 /* libz.1.1.3.tbd */, 84C1D7961C16B4370058E974 /* libz.1.2.5.tbd */, @@ -1573,7 +1582,6 @@ 84799AD81BAFDDA00070E214 /* demoH2_CollectionView.lua in Resources */, 8468C96B1BDA11BE002D4B1E /* testUITextView2.lua in Resources */, 8446F1611BDF5B54007E4064 /* bt_catebrand_more.9.png in Resources */, - 84799ADA1BAFDDA00070E214 /* color2.png in Resources */, 8468C9651BDA11BE002D4B1E /* testUILoadingView.lua in Resources */, 84CC63801BB16AF300613B74 /* fire.zip in Resources */, 84C1D8A71C17055C0058E974 /* enter11.png in Resources */, @@ -1597,12 +1605,12 @@ 84799ACA1BAFDDA00070E214 /* img1.tiff in Resources */, 84C1D8A61C17055C0058E974 /* enter10.png in Resources */, 847BE9021C0E95C5008776E9 /* demoZ_1212.lua in Resources */, - 84799AD91BAFDDA00070E214 /* color1.png in Resources */, 84799AE71BAFDDA00070E214 /* demoP_string.lua in Resources */, 8468C9641BDA11BE002D4B1E /* testUILoadingDialog.lua in Resources */, 84799AE91BAFDDA00070E214 /* demoO_table.lua in Resources */, 84FC64D21BB399A500B6AF86 /* demoO_Timer.lua in Resources */, 84799AD71BAFDDA00070E214 /* demoZ2_callOC.lua in Resources */, + 3CB5B1621C489CF700E66C91 /* candle in Resources */, 84799ADB1BAFDDA00070E214 /* demoO_coroutineDemo.lua in Resources */, 8481E0531BD6690A00FDFEEA /* demoK_ScrollView.lua in Resources */, 8468C96E1BDA11BE002D4B1E /* testViewPagerIndicator.lua in Resources */, @@ -1617,7 +1625,6 @@ 84BE192D1C2AA4DB00EE9E41 /* demoC2_IconFontLabel.lua in Resources */, 84799AEA1BAFDDA00070E214 /* demoG_TableView.lua in Resources */, 84799AD31BAFDDA00070E214 /* demoZA4_AnimateSnow.lua in Resources */, - 84799AE41BAFDDA00070E214 /* lazhu.png in Resources */, 840870851BE9DB47004CADB7 /* demoZ_2015_testunit.lua in Resources */, 8468C9661BDA11BE002D4B1E /* testUINoticeView.lua in Resources */, 84799ADD1BAFDDA00070E214 /* demoE_Button.lua in Resources */, @@ -1628,7 +1635,6 @@ 847BE9061C0E97AF008776E9 /* enter.png in Resources */, 8468C95C1BDA11BE002D4B1E /* testLuaLang.lua in Resources */, 84799ADF1BAFDDA00070E214 /* demoY5_DownloadAndFile.lua in Resources */, - 8480C71E1C059BA70081B8A3 /* demoU_Http.lua in Resources */, 84799AF01BAFDDCA0070E214 /* demoK_PagerView.lua in Resources */, 84799ACC1BAFDDA00070E214 /* img13.tiff in Resources */, 8468C9631BDA11BE002D4B1E /* testUIImageView.lua in Resources */, @@ -1977,6 +1983,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; @@ -2005,6 +2012,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; @@ -2055,7 +2063,9 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD)"; - DEBUG_INFORMATION_FORMAT = dwarf; + CLANG_ENABLE_MODULES = NO; + CLANG_ENABLE_MODULE_DEBUGGING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; FRAMEWORK_VERSION = A; @@ -2080,6 +2090,8 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD)"; + CLANG_ENABLE_MODULES = NO; + CLANG_ENABLE_MODULE_DEBUGGING = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DYLIB_COMPATIBILITY_VERSION = 1; diff --git a/IOS/LuaViewSDK/Classes/LView.h b/IOS/LuaViewSDK/Classes/LView.h index 5b304d20..b194e956 100644 --- a/IOS/LuaViewSDK/Classes/LView.h +++ b/IOS/LuaViewSDK/Classes/LView.h @@ -78,7 +78,25 @@ */ -(NSString*) runData:(NSData*) data fileName:(NSString*) fileName; -/* +/** + * 加载签名的脚本文件,读取文件并调用lvL_loadbuffer + * + * @param fileName 本地文件名 + * + * @return 返回错误描述 + */ +-(NSString*) loadSignFile:(NSString *)fileName; + +/** + * 加载脚本文件,读取文件并调用lvL_loadbuffer + * + * @param fileName 本地文件名 + * + * @return 返回错误描述 + */ +-(NSString*) loadFile:(NSString *)fileName; + +/** * *调用lua脚本, functionName:lua的function名称, environment:运行窗口, args:传递参数 * diff --git a/IOS/LuaViewSDK/Classes/LView.m b/IOS/LuaViewSDK/Classes/LView.m index d6a6e473..1ed1d5a3 100644 --- a/IOS/LuaViewSDK/Classes/LView.m +++ b/IOS/LuaViewSDK/Classes/LView.m @@ -95,15 +95,15 @@ -(void) dealloc{ -(NSString*) runFile:(NSString*) fileName{ self.runInSignModel = FALSE; NSData* code = [LVUtil dataReadFromFile:fileName package:self.package]; - NSString* error = [self runData:code fileName:fileName]; - return error; + + return [self runData:code fileName:fileName]; } -(NSString*) runSignFile:(NSString*) fileName{ self.runInSignModel = TRUE; NSData* code = [LVPkgManager readLuaFile:fileName package:self.package rsa:self.rsa]; - NSString* error = [self runData:code fileName:fileName]; - return error; + + return [self runData:code fileName:fileName]; } -(NSString*) runPackage:(NSString*) packageName { @@ -137,6 +137,41 @@ -(void) checkDebugOrNot:(const char*) chars length:(NSInteger) len fileName:(NSS } } +- (NSString*)loadFile:(NSString *)fileName { + NSData* code = [LVUtil dataReadFromFile:fileName package:self.package]; + return [self loadData:code fileName:fileName]; +} + +- (NSString*)loadSignFile:(NSString *)fileName { + NSData* code = [LVPkgManager readLuaFile:fileName package:self.package rsa:self.rsa]; + return [self loadData:code fileName:fileName]; +} + +- (NSString*)loadData:(NSData *)data fileName:(NSString *)fileName { + if (!data || !data.length || !fileName || !fileName.length) { + LVError( @"running chars == NULL"); + return @"running chars == NULL"; + } + +#ifdef DEBUG + [self checkDeuggerIsRunningToLoadDebugModel]; + [self checkDebugOrNot:data.bytes length:data.length fileName:fileName]; +#endif + + int error = lvL_loadbuffer(self.l, data.bytes, data.length, fileName.UTF8String); + if (error) { + const char* s = lv_tostring(self.l, -1); + LVError( @"%s", s ); +#ifdef DEBUG + NSString* string = [NSString stringWithFormat:@"[LuaView][error] %s\n",s]; + lv_printToServer(self.l, string.UTF8String, 0); +#endif + return [NSString stringWithFormat:@"%s",s]; + } else { + return nil; + } +} + #ifdef DEBUG extern char g_debug_lua[]; @@ -183,13 +218,7 @@ -(void) registeLibs{ if( !self.stateInited ) { self.stateInited = YES; self.l = lvL_newstate();//lv_open(); /* opens */ - lvopen_base(self.l); /* opens the basic library */ - lvopen_table(self.l); /* opens the table library */ - lvopen_debug(self.l); // debug - //lvopen_io(L); /* opens the I/O library */ - lvopen_os(self.l); - lvopen_string(self.l); /* opens the string lib. */ - lvopen_math(self.l); /* opens the math lib. */ + lvL_openlibs(self.l); [LVRegisterManager registryApi:self.l lView:self]; self.l->lView = (__bridge void *)(self); @@ -220,7 +249,7 @@ -(NSString*) runData:(NSData *)data fileName:(NSString*)fileName{ const char* s = lv_tostring(self.l, -1); LVError( @"%s", s ); #ifdef DEBUG - NSString* string = [NSString stringWithFormat:@"[LuaView][error] %s",s]; + NSString* string = [NSString stringWithFormat:@"[LuaView][error] %s\n",s]; lv_printToServer(self.l, string.UTF8String, 0); #endif return [NSString stringWithFormat:@"%s",s]; diff --git a/IOS/LuaViewSDK/Classes/lv514/lVconf.h b/IOS/LuaViewSDK/Classes/lv514/lVconf.h index a902bbdc..8a3c6be2 100644 --- a/IOS/LuaViewSDK/Classes/lv514/lVconf.h +++ b/IOS/LuaViewSDK/Classes/lv514/lVconf.h @@ -85,11 +85,11 @@ ** In Windows, any exclamation mark ('!') in the path is replaced by the ** path of the directory of the executable file of the current process. */ -#define LV_LDIR "!\\lv\\" +#define LV_LDIR "!\\lua\\" #define LV_CDIR "!\\" #define LV_PATH_DEFAULT \ - ".\\?.lv;" LV_LDIR"?.lv;" LV_LDIR"?\\init.lv;" \ - LV_CDIR"?.lv;" LV_CDIR"?\\init.lv" + ".\\?.lua;" LV_LDIR"?.lua;" LV_LDIR"?\\init.lua;" \ + LV_CDIR"?.lua;" LV_CDIR"?\\init.lua" #define LV_CPATH_DEFAULT \ ".\\?.dll;" LV_CDIR"?.dll;" LV_CDIR"loadall.dll" @@ -98,8 +98,8 @@ #define LV_LDIR LV_ROOT "share/lv/5.1/" #define LV_CDIR LV_ROOT "lib/lv/5.1/" #define LV_PATH_DEFAULT \ - "./?.lv;" LV_LDIR"?.lv;" LV_LDIR"?/init.lv;" \ - LV_CDIR"?.lv;" LV_CDIR"?/init.lv" + "./?.lua;" LV_LDIR"?.lua;" LV_LDIR"?/init.lua;" \ + LV_CDIR"?.lua;" LV_CDIR"?/init.lua" #define LV_CPATH_DEFAULT \ "./?.so;" LV_CDIR"?.so;" LV_CDIR"loadall.so" #endif diff --git a/IOS/LuaViewSDK/Classes/lv514/lVstrlib.c b/IOS/LuaViewSDK/Classes/lv514/lVstrlib.c index 46afbaed..04f2ac39 100644 --- a/IOS/LuaViewSDK/Classes/lv514/lVstrlib.c +++ b/IOS/LuaViewSDK/Classes/lv514/lVstrlib.c @@ -11,9 +11,6 @@ #include #include -typedef struct lv_State lv_State; -extern void lv_clearFirstTableValue(lv_State* l); - #define lstrlib_c #define LV_LIB @@ -22,6 +19,8 @@ extern void lv_clearFirstTableValue(lv_State* l); #include "lVauxlib.h" #include "lVlib.h" +extern void lv_clearFirstTableValue(lv_State* l); + /* macro to `unsign' a character */ #define uchar(c) ((unsigned char)(c)) diff --git a/IOS/LuaViewSDK/Classes/lvsdk/LVHeads.h b/IOS/LuaViewSDK/Classes/lvsdk/LVHeads.h index bf88801b..dde07200 100644 --- a/IOS/LuaViewSDK/Classes/lvsdk/LVHeads.h +++ b/IOS/LuaViewSDK/Classes/lvsdk/LVHeads.h @@ -17,8 +17,6 @@ #import "lVgc.h" #define lvL_reg lvL_Reg -typedef struct lvL_Reg lvL_Reg; -typedef struct lv_State lv_State; #import "LVUtil.h" //-------------------------------------------------------------------------------- diff --git a/IOS/LuaViewSDK/Classes/lvsdk/LVHttp.m b/IOS/LuaViewSDK/Classes/lvsdk/LVHttp.m index a456e730..bc6ae48e 100644 --- a/IOS/LuaViewSDK/Classes/lvsdk/LVHttp.m +++ b/IOS/LuaViewSDK/Classes/lvsdk/LVHttp.m @@ -110,6 +110,23 @@ -(void) connectionDidFinishLoading:(NSURLConnection *)connection{ [self performSelectorOnMainThread:@selector(requesetEndToDo) withObject:nil waitUntilDone:NO]; } +-(void) connectionDidReceiveData:(NSData *)data{ + if( self.response.data == nil ) { + self.response.data = [[NSMutableData alloc] init]; + } + [self.response.data appendData:data]; +} + +-(void) connectionDidReceiveResponse:(NSURLResponse *)response{ + self.response.response = response; + if( [response isKindOfClass:[NSHTTPURLResponse class]] ){ + self.response.httpResponse = (NSHTTPURLResponse*)response; + } +} +-(void) connectionDidFinishLoading{ + [self performSelectorOnMainThread:@selector(requesetEndToDo) withObject:nil waitUntilDone:NO]; +} + -(id) lv_nativeObject{ return self; } @@ -145,9 +162,12 @@ static int get (lv_State *L) { [request setTimeoutInterval:http.timeout]; NSOperationQueue *queue = [[NSOperationQueue alloc]init]; - http.connection = [[NSURLConnection alloc] initWithRequest:request delegate:http]; - [http.connection setDelegateQueue:queue]; - [http.connection start]; + __weak LVHttp* weakHttp = http; + [NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { + [weakHttp connectionDidReceiveResponse:response]; + [weakHttp connectionDidReceiveData:data]; + [weakHttp connectionDidFinishLoading]; + }]; } } return 0; /* new userdatum is already on the stack */ @@ -198,9 +218,12 @@ static int post (lv_State *L) { } NSOperationQueue *queue = [[NSOperationQueue alloc]init]; - http.connection = [[NSURLConnection alloc] initWithRequest:request delegate:http]; - [http.connection setDelegateQueue:queue]; - [http.connection start]; + __weak LVHttp* weakHttp = http; + [NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { + [weakHttp connectionDidReceiveResponse:response]; + [weakHttp connectionDidReceiveData:data]; + [weakHttp connectionDidFinishLoading]; + }]; } } return 0; /* new userdatum is already on the stack */ diff --git a/IOS/LuaViewSDK/Classes/lvsdk/LVMethod.m b/IOS/LuaViewSDK/Classes/lvsdk/LVMethod.m index acb6df2b..bcdc561b 100644 --- a/IOS/LuaViewSDK/Classes/lvsdk/LVMethod.m +++ b/IOS/LuaViewSDK/Classes/lvsdk/LVMethod.m @@ -52,6 +52,7 @@ -(int) performMethodWithArgs:(lv_State*)L{ return [LVTypeConvert pushInvocationReturnValue:invocation toLua:L]; } + LVError(@"Not found Method: %@.%@",[self.nativeObject class], self.selectName ); return 0; } diff --git a/IOS/LuaViewSDK/Classes/lvsdk/LVRegisterManager.m b/IOS/LuaViewSDK/Classes/lvsdk/LVRegisterManager.m index 99700cca..4089cf05 100644 --- a/IOS/LuaViewSDK/Classes/lvsdk/LVRegisterManager.m +++ b/IOS/LuaViewSDK/Classes/lvsdk/LVRegisterManager.m @@ -63,19 +63,25 @@ @implementation LVRegisterManager #pragma -mark registryApi // 全局静态常量 和 静态方法 +(void) registryStaticMethod:(lv_State *)L lView:(LView *)lView{ - { - lv_pushcfunction(L, loadJson); - lv_setglobal(L, "loadJson"); - } - { - lv_pushcfunction(L, requireMethodForLuaView); - lv_setglobal(L, "require"); - } - { - lv_pushcfunction(L, unicode); - lv_setglobal(L, "Unicode"); + lv_pushcfunction(L, loadJson); + lv_setglobal(L, "loadJson"); + + lv_pushcfunction(L, unicode); + lv_setglobal(L, "Unicode"); + + // 替换pakcage.loaders中的loader_lv + + lv_getglobal(L, LV_LOADLIBNAME); + lv_getfield(L, 1, "loaders"); + if (!lv_istable(L, -1)) { + return; } + + lv_pushnumber(L, 2); + lv_pushcfunction(L, requireMethodForLuaView); + lv_settable(L, -3); } + // 注册函数 +(void) registryApi:(lv_State*)L lView:(LView*)lView{ //清理栈 @@ -220,21 +226,21 @@ static int unicode(lv_State *L) { static int requireMethodForLuaView (lv_State *L) { NSString* fileName = lv_paramString(L, 1); if( fileName ){ + // submodule + fileName = [fileName stringByReplacingOccurrencesOfString:@"." withString:@"/"]; + LView* lview = (__bridge LView *)(L->lView); if( lview ) { - NSString* ret = nil; if ( lview.runInSignModel ) { fileName = [NSString stringWithFormat:@"%@.lv",fileName]; - ret = [lview runSignFile:fileName]; + return [lview loadSignFile:fileName] == nil ? 1 : 0; } else { fileName = [NSString stringWithFormat:@"%@.lua",fileName]; - ret =[lview runFile:fileName]; + return [lview loadFile:fileName] == nil ? 1 : 0; } - lv_pushstring(L, ret.UTF8String); - return 1; } } - return 0; /* number of results */ + return 0; } diff --git a/IOS/LuaViewSDK/Classes/lvsdk/LVSystem.m b/IOS/LuaViewSDK/Classes/lvsdk/LVSystem.m index f647e53a..580ba0ec 100644 --- a/IOS/LuaViewSDK/Classes/lvsdk/LVSystem.m +++ b/IOS/LuaViewSDK/Classes/lvsdk/LVSystem.m @@ -53,6 +53,15 @@ static int netWorkType (lv_State *L) { return 1; } +// 屏幕常亮 +static int keepScreenOn (lv_State *L) { + if( lv_gettop(L)>0 ){ + BOOL yes = lv_toboolean(L, -1); + [[UIApplication sharedApplication] setIdleTimerDisabled:yes] ; + } + return 0; +} + static int scale (lv_State *L) { CGFloat s = [UIScreen mainScreen].scale; lv_pushnumber( L, s); @@ -134,6 +143,7 @@ +(int) classDefine:(lv_State *)L { {"ios", ios}, {"android", android}, {"network", netWorkType}, + {"keepScreenOn", keepScreenOn},// 保持屏幕常亮接口 {NULL, NULL} }; lvL_openlib(L, "System", staticFunctions, 0); diff --git a/LuaViewSDK.podspec b/LuaViewSDK.podspec index 93e24c1c..a4ff6e49 100644 --- a/LuaViewSDK.podspec +++ b/LuaViewSDK.podspec @@ -2,7 +2,7 @@ Pod::Spec.new do |s| s.name = "LuaViewSDK" - s.version = "2.0.0.7" + s.version = "2.0.0.12" s.summary = "LuaView SDK" s.description = <<-DESC @@ -10,7 +10,7 @@ Pod::Spec.new do |s| * LuaView DESC - s.homepage = "http://gitlab.alibaba-inc.com/juhuasuanwireless/LuaViewSDK" + s.homepage = "https://github.com/alibaba/LuaViewSDK" s.license = { :type => 'GNU General Public Licence (GPL), Version 2.0', :file => 'LICENSE.txt' } @@ -25,7 +25,7 @@ Pod::Spec.new do |s| s.platform = :ios, "7.0" - s.source = { :git => "git@gitlab.alibaba-inc.com:juhuasuanwireless/LuaViewSDK.git", :tag => "2.0.0.0" } + s.source = { :git => "https://github.com/alibaba/LuaViewSDK.git", :tag => "2.0.0.12" } s.source_files = "LuaViewSDK/Classes", "IOS/LuaViewSDK/Classes/**/*.{h,m,c}" # s.exclude_files = "Classes/Exclude"