链接 (Linking)
React Native 0.68+
从 React Native v0.68 及以上版本开始,通过 Autolinking 实现自动链接。无需手动链接。
iOS
安装完成后,进入 ios 目录并安装 CocoaPods 依赖:
cd ios && pod install
Android
无需额外步骤。库将在构建过程中自动链接。
已弃用 (Deprecated)
不再支持
以下章节仅适用于旧版本。 如果您使用的是 React Native 0.68+ 和 react-native-screenguard v1.0.8+,可以跳过整个章节。
React Native 0.59 及以下 (手动链接)
v2.0.0+ 不再支持
React Native 0.59 及以下版本在 v2.0.0 中不再受支持。请升级到 React Native 0.68+ 以使用最新版本。
iOS 手动链接
- 在 Xcode 中,右键点击项目导航器中的
Libraries - 选择 Add Files to [您的项目名称]
- 导航到
node_modules/react-native-screenguard并添加ScreenGuard.xcodeproj - 在导航器中选择您的项目,转到 Build Phases → Link Binary With Libraries
- 添加
libScreenguard.a
Android 手动链接
- 打开
android/app/src/main/java/[...]/MainActivity.java:
import com.screenguard.ScreenGuardPackage; // 添加此导入
// 添加到 getPackages() 方法中:
new ScreenGuardPackage()
- 添加到
android/settings.gradle:
include ':react-native-screenguard'
project(':react-native-screenguard').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-screenguard/android')
- 在
android/app/build.gradle的 dependencies 中添加:
implementation project(':react-native-screenguard')
Android 安装后配置 (v1.0.6 及以下)
v1.0.8+ 无需配置
从 v1.0.8 开始,Activity 已在库的 AndroidManifest.xml 中自动声明,并在构建时合并。此步骤仅对 v1.0.6 及以下版本是必需的。
对于 v1.0.6 及以下版本,您必须在 AndroidManifest.xml 中手动声明 ScreenGuardColorActivity,以启用背景颜色和模糊效果。
第 1 步:更新 AndroidManifest.xml
打开 android/app/src/main/AndroidManifest.xml 并添加 Activity:
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application ...>
<activity android:name=".MainActivity" ...>
...
</activity>
<!-- 添加此 Activity -->
<activity
android:name="com.screenguard.ScreenGuardColorActivity"
android:theme="@style/Theme.AppCompat.Translucent"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode"
android:windowSoftInputMode="stateAlwaysVisible|adjustResize"
android:exported="false"
/>
</application>
</manifest>
第 2 步:添加透明主题
打开 android/app/src/main/res/values/styles.xml 并添加主题:
<resources>
<style name="AppTheme">
<!-- 您现有的主题 -->
</style>
<!-- 添加此主题 -->
<style name="Theme.AppCompat.Translucent">
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@null</item>
<item name="android:windowSoftInputMode">adjustResize</item>
</style>
</resources>