bluestar-android
v1.0.0
Published
Android WebView 桥接工具集,提供拍照、权限请求、分享等原生交互能力
Maintainers
Readme
bluestar-android
Android WebView 桥接工具集,用于在 WebView 中调用 Android 原生能力。
环境要求
window.Android桥接对象(Android 端注入,实现AndroidBridge接口)
安装
npm install bluestar-androidAPI
takePhoto()
调用 Android 相机拍照,返回图片元素。
import { takePhoto } from 'bluestar-android';
const img = await takePhoto();
document.body.appendChild(img);share()
拍照后直接分享到 Android 应用。
import { share } from 'bluestar-android';
await share();requestLocationPermission(permissionCode, title, message)
请求 Android 权限。
import { requestLocationPermission, ANDROID_PERMISSIONS } from 'bluestar-android';
const granted = await requestLocationPermission(
ANDROID_PERMISSIONS.CAMERA,
'请求相机权限',
'本应用需要获取您的相机权限'
);checkVersion()
检测 Chrome 浏览器版本号。
import { checkVersion } from 'bluestar-android';
const version = checkVersion(); // 如 "120.0.6099.144"convertImageToBase64(image)
将 HTMLImageElement 转换为 Base64 编码的 PNG 字符串。
import { convertImageToBase64 } from 'bluestar-android';
const base64 = convertImageToBase64(imgElement);ANDROID_PERMISSIONS
Android 权限常量。
| 常量 | 值 |
|---|---|
| INTERNET | android.permission.INTERNET |
| ACCESS_FINE_LOCATION | android.permission.ACCESS_FINE_LOCATION |
| ACCESS_COARSE_LOCATION | android.permission.ACCESS_COARSE_LOCATION |
| ACCESS_WIFI_STATE | android.permission.ACCESS_WIFI_STATE |
| ACCESS_NETWORK_STATE | android.permission.ACCESS_NETWORK_STATE |
| ACCESS_LOCATION_EXTRA_COMMANDS | android.permission.ACCESS_LOCATION_EXTRA_COMMANDS |
| MODIFY_AUDIO_SETTINGS | android.permission.MODIFY_AUDIO_SETTINGS |
| CAMERA | android.permission.CAMERA |
| RECORD_AUDIO | android.permission.RECORD_AUDIO |
Android 端要求
Android 原生侧需在 WebView 中注入 window.Android 对象,实现以下接口:
interface AndroidBridge {
fun takePhoto()
fun share(base64: String)
fun requestPermission(permissionCode: String, title: String, message: String)
}并回调以下 Window 方法:
window.onAndroidPermissionRequest(message: string, status: boolean)— 权限请求结果window.onAndroidBridgeMessage(type: string, eventString: string)— 拍照等事件回调,eventString为{ result: boolean, uri: string }的 JSON
