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

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


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

静态类使用

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

非静态类

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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值