lua学习笔记 1 android 调用Lua, Lua脚本中启动Intent

来源:互联网 发布:网络模块套什么定额 编辑:程序博客网 时间:2024/05/16 19:22

android 调用Lua, Lua脚本启动Intent


android 中的调用

try {mLuaState.LdoString(readStream(getResources().openRawResource(R.raw.testLua)));// 找到functionInLuaFile函数mLuaState.getField(LuaState.LUA_GLOBALSINDEX, "launchIntent");mLuaState.pushJavaObject(getApplicationContext());mLuaState.call(1, 0);} catch (Exception e) {e.printStackTrace();}



readStream 实现

private String readStream(InputStream is) {try {ByteArrayOutputStream bo = new ByteArrayOutputStream();int i = is.read();while (i != -1) {bo.write(i);i = is.read();}return bo.toString();} catch (IOException e) {Log.e("ReadStream", "读取文件流失败");return "";}}


在Android 工程 res/raw/新建lua脚本 testLua.lua


-- 启动 intentfunction launchIntent(context)-- new 一个java 实例local intent = luajava.newInstance("android.content.Intent")intent:addFlags(0x10000000)intent:setAction("android.intent.action.VIEW")-- bind 一个Java实例,调用static 方法local uri = luajava.bindClass("android.net.Uri")intent:setData(uri:parse("http://blog.csdn.net/hpccn"))context:startActivity(intent);end


lua 调用 Java中静态类与非静态类的方法不同。

静态类使用

uri = luajava.bindClass("android.net.Uri")

非静态类

intent = luajava.newInstance("android.content.Intent")

在Lua脚本中发启一个Intent, 打开一个网页,就是本人的博客。


原创粉丝点击