阿里的weex怎样让程序打包在安卓手机上运行

阿里的weex怎样让程序打包在安卓手机上运行,第1张

可以直接用命令安装,首先准备好apk文件

然后执行以下步骤:

将需要安装的apk文件放在和adb应用程序的同一个文件夹中。

2.打开cmd应用程序窗口。

3.用命令进入adb的系统文件夹里面。

4.使用命令adb install xxx.apk 回车,接下来就是等待安装。安装好之后会返回success。

weex使用navigator进行页面跳转,这种方式是使用的url传参,刚开始使用的时候一直都是用下面这种方法传值:

navigator.push({

url: config.getWeexIp() + '/app/main.js?account=123456&name=jelly'

})

url中?后面便是携带的参数,ccount=123456&name=jelly就是代表两个参数,一个account,一个name。

在跳转后的页面通过获取url地址,便可以得到这两个值。但和android不同的是,在ios系统中,是不支持中文的,也就是说如果url是'/app/main.js?account=123456&name=杰尼',便会获取不到name数据,所以在最开始拼接url时需要encodeURIComponent方法转码,在拿到数据后在使用decodeURIComponent方法解码拿到正确的数据。

上面这种方法在需要传递的数据较少时很方便,但是实际开发中,数据往往都是一个json对象,需要传递的参数也很多,这样一来,url的拼接往往会变得很繁琐,因为需要将json对象中的数据单独一个一个提取出来传递.例:

假如有一个json对象格式如下:

data:{

account : 123456,

name : 杰尼,

}

url就会变成:

'/app/main.js?account='+data.account+'&name='+ encodeURIComponent(data.name)

获取到url地址后需要执行下面两条语句拿到数据:

account=url.account

name=decodeURIComponent(url.name) //解码

这只是两条数据,如果数据有十条以上,代码会变得很冗余,出错概率也会变大。

在写项目《XXXX》时开始思考能不能和原生Android一样,将一整个对象打包传递。之后,我找到了两个函数方法:

JSON.stringify() //将对象转换为json字符串

JSON.parse() //将json字符串转换为对象

虽然url不支持拼接对象,但是支持字符串啊,所以我可以把url写成:

'/app/main.js?data='+JSON.stringify(data)

获取数据时:

data=JSON.parse(url.data)

传递数据时,把对象转成json字符串传过去,在第二个页面获取到json字符串后,再转成对象,这样就完成了对象的传递。

需要使用account数据时,可以直接充data对象中拿:data.account

这种方法,代码量很少,同时也可以减少出错的概率,因为去除了抽取对象数据进行传递的步骤,避免出现参数名编写错误等bug。

但是仅仅这样也还不行,因为对象转成的json字符串中也是有可能出现中文的,比如data.name这个数据。所以同样需要做转码解码处理,最终的url:

'/app/main.js?data='+encodeURIComponent(JSON.stringify(data))

获取对象数据:

data= decodeURIComponent(JSON.parse(url.data))

整个传参过程就这两行核心代码。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11461028.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存