我是靠谱客的博主 激昂星星,最近开发中收集的这篇文章主要介绍React native 获取屏幕方向,限制横竖屏 react-native-orientation和react-native-orientation-locker,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

关于RN下横竖屏的相关操作,浏览了很多博客都是使用这个老库居多,后发现一个bug ,新库中有所解决。但新库也有点异常的地方。暂时先做记录,后续再来填坑。

老库:https://github.com/yamill/react-native-orientation

新库:https://github.com/wonday/react-native-orientation-locker
github地址

 

安装:

使用 yarn (RN 0.60 及以上)

    yarn add react-native-orientation-locker

使用 yarn (RN 0.59 及以下)

    yarn add react-native-orientation-locker
    react-native link react-native-orientation-locker

Functions

  • lockToPortrait() //锁住竖屏
  • lockToLandscape() //锁住横屏
  • lockToLandscapeLeft() this will lock to camera left home button right
  • lockToLandscapeRight() this will lock to camera right home button left
  • lockToPortraitUpsideDown only support android
  • lockToAllOrientationsButUpsideDown only ios
  • unlockAllOrientations() //解除方向限制
  • getOrientation(function(orientation))
  • getDeviceOrientation(function(deviceOrientation))
  • getAutoRotateState(function(state)) (android only)
  • isLocked() (lock status by this library)

orientation can return one of:

  • PORTRAIT
  • LANDSCAPE-LEFT camera left home button right
  • LANDSCAPE-RIGHT camera right home button left
  • PORTRAIT-UPSIDEDOWN
  • FACE-UP
  • FACE-DOWN
  • UNKNOWN

 

记录一个常见的问题,就是当android限制屏幕方向生效,ios不生效时,请加以下代码即可生效。老库的这个代码在部分ios机型可能存在报错风险,推荐尽量使用新库。

#include <react-native-orientation/Orientation.h>

-(UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window { return [Orientation getOrientation]; }

在AppDelegate.m中加上这个代码就可以锁住ios屏幕了

最后

以上就是激昂星星为你收集整理的React native 获取屏幕方向,限制横竖屏 react-native-orientation和react-native-orientation-locker的全部内容,希望文章能够帮你解决React native 获取屏幕方向,限制横竖屏 react-native-orientation和react-native-orientation-locker所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(92)

评论列表共有 0 条评论

立即
投稿
返回
顶部