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
-- 啓動 intent
function 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
靜態類使用
uri = luajava.bindClass("android.net.Uri")
非靜態類
intent = luajava.newInstance("android.content.Intent")
在Lua腳本中發啓一個Intent, 打開一個網頁,就是本人的博客。