9***@qq.com
9***@qq.com
  • 发布:2019-09-18 20:09
  • 更新:2019-09-18 20:09
  • 阅读:1181

安卓离线打包禁用屏幕旋转

分类:5+ SDK

最近发现离线打包出来的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>

希望官方完善文档吧,哎~~

1 关注 分享
l***@163.com

要回复文章请先登录注册