最近发现离线打包出来的app居然会根据手机旋转屏幕,可是我明明已经在manifest.json里配置里只竖屏啊。论坛搜了半天也没发现离线打包怎么禁止屏幕旋转。
看了一下生成本地包打出来的manifest.json,发现orientation属性不见了,推测是这个属性只是给在线打包用的,所以生成离线打包资源时并没有带进去。
于是看了一下安卓工程,发现入口的PandoraEntry里有解析manifest.json的代码
if (var6 != null && var6.has("screenOrientation")) {
JSONArray var7 = var6.optJSONArray("screenOrientation");
if (var7 != null && var7.length() > 0) {
int var8 = this.a(var7);
var1.putExtra("__intetn_orientation__", var8);
}
}
那我在编译完的manifest里加进去怎么样呢?。。。。还是不行!原来根本不会执行那段代码
//判断BaseInfo.SyncDebug属性,但是结果为false
if (BaseInfo.SyncDebug) {
this.a(var2);//此次执行解析
}
坑啊!无奈只能在编译完的安装包里搜索了,然后发现生成完的安装包PandoraEntryActivity的orientation为2,应该就是这个了!试了一下,果然可以。
做法:手动在AndroidManifest.xml里添加注册,覆盖sdk的注册
<activity android:name="io.dcloud.PandoraEntryActivity"
tools:replace="android:screenOrientation"//指明覆盖原sdk注册的screenOrientation属性
android:screenOrientation="portrait"//设置方向为竖屏
></activity>
希望官方完善文档吧,哎~~
0 个评论
要回复文章请先登录或注册