Corona中文站

强大、易学的跨平台(iOS/Android)开发框架。QQ群1:74390406(满) 群2:221929599

导航

五分钟学会Corona(十八) - 网络和Web Services
Corona包含了最新版本(v2.02)的LuaSocket库。这些Lua模块实现的常见的网络协议,例如SMTP,HTTP和FTP。也包括一些特性支持如MIME,URL操作和LTN12。

LuaSocket是一个被预装到corona中的扩展库的集合。为了加速程序的启动,他们不会默认被自动加载。为了使用他们,你必须显式的加载每一个,以使库函数可以在你的代码中使用。为了做到这一点,你应该require他们。并且吧下面代码放在你的lua文件的顶部。

local socket = require("socket")



local http = require("http")

完整的 LuaSocket 文档可以在这里被找到:

http://www.tecgraf.puc-rio.br/~diego/professional/luasocket/reference.html

尽管这些库被构建到Corona里,你需要使用Lua的require语法来确保函数在你的代码中可用。这在前面的例子中已经展示了,或者从全球Lua社区中提供的一些其他在线代码范例。

简单图片下载

这个例子使用 http.request 函数来下载一个PNG文件,将其保存到一个本地目录,然后吧它显示为一个image。jpeg文件也可以用同样的方法下载然后显示。

-- 加载要用的 LuaSocket 模块

local http = require("socket.http")

local ltn12 = require("ltn12")



-- 为保存数据创建本地文件

local path = system.pathForFile( "hello.png", system.DocumentsDirectory )

myFile = io.open( path, "w+b" )



-- 请求远程文件,并保存数据到本地文件

http.request{

url = "http://developer.anscamobile.com/demo/hello.png",

sink = ltn12.sink.file(myFile),

}



-- 显示本地文件

testImage = display.newImage("hello.png",system.DocumentsDirectory,60,50);


当在Corona模拟器中测试这个代码的时候,你mac电脑的 Documents 目录就相当于你iPhone上的应用程序本地目录。作为结果,你将看到下载的PNG文件被存储在你的 Documents目录里。

在 Android 上启用网络访问

为了启用android设备上的网络访问,你需要添加 android.permission.INTERNET 权限到你的项目的build.setting文件里, 如同下面所示。关于 build.settings更多的信息,在Corona开发者文档参看 Build Configuration: build.settings 。

1

2

3

4

5

6

7

8

9

10
-- build.settings



settings =

{



androidPermissions =

{

"android.permission.INTERNET",

},

}


范例

如何使用这个库的例子,请在Corona SDK的范例代码目录里查看 SimpleImageDownload 项目。
<< 五分钟学会Corona(十七) - 五分钟学会Corona(十九) - OpenFeint >>

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最近发表

Powered By Z-Blog 1.8 Walle Build 100427 Copyright 2011-2015 BuildApp.Net. All Rights Reserved.