fix: 补充 web_shell_core 缺失的 Android 权限及清单属性

利用 Android Manifest Merger 的特性,将所有核心权限声明在 web_shell_core 的库清单中。
- 补齐了 INTERNET, CAMERA, STORAGE, BLUETOOTH 等全套权限,确保 H5 与 permission_handler 正常工作
- 添加了 Android 11+ 所需的 url_launcher queries 白名单
- 巧妙注入 android:usesCleartextTraffic="true",优雅解决了 HTTP 明文流量被拦截的问题
生成的品牌 App 现在可以零配置开箱即用
This commit is contained in:
Max 2026-03-20 04:38:37 +08:00
parent 4438727b32
commit 77af598f3e
1 changed files with 87 additions and 0 deletions

View File

@ -1,3 +1,90 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yuanxuan.webshell.core.web_shell_core"> package="com.yuanxuan.webshell.core.web_shell_core">
<!-- 网络请求与 WebView -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!-- 蓝牙 (适配旧页面的 JS 调用) -->
<uses-permission
android:name="android.permission.BLUETOOTH"
android:maxSdkVersion="30"/>
<uses-permission
android:name="android.permission.BLUETOOTH_ADMIN"
android:maxSdkVersion="30"/>
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
<uses-permission
android:name="android.permission.BLUETOOTH_SCAN"
android:usesPermissionFlags="neverForLocation"/>
<!-- 定位资源 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!-- 媒体与硬件交互 (permission_handler 所需) -->
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
<!-- 旧版存储权限 -->
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32"/>
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="28"/>
<!-- 应用内更新及系统通知 -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
<!-- 声明不强制要求硬件,兼容各种阉割版教育平板 -->
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.microphone" android:required="false"/>
<uses-feature android:name="android.hardware.bluetooth" android:required="false"/>
<uses-feature android:name="android.hardware.bluetooth_le" android:required="false"/>
<!-- 通过 Manifest Merger 将 cleartextTraffic 自动注入宿主 application解决前序核查发现的 HTTP default_url 问题 -->
<application android:usesCleartextTraffic="true">
</application>
<!-- url_launcher 在 Android 11+ 检测应用需要白名单 -->
<queries>
<intent>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="http"/>
</intent>
<intent>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="https"/>
</intent>
<intent>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="tel"/>
</intent>
<intent>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="sms"/>
</intent>
<intent>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="mailto"/>
</intent>
<intent>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="market"/>
</intent>
<intent>
<action android:name="android.intent.action.VIEW"/>
<data android:mimeType="application/vnd.android.package-archive"/>
</intent>
</queries>
</manifest> </manifest>