Han*_*ans 11 permissions location react-native expo
我正在使用 expo-permission 库中的权限来获取用户的位置坐标:
import * as Location from "expo-location";
import * as Permissions from 'expo-permissions';
const granted = await Permissions.askAsync(Permissions.LOCATION);
Run Code Online (Sandbox Code Playgroud)
上面的方法有效,但不断发出警告,警告博览会权限已被弃用。
如果我使用:
import {Location, Permissions } from 'expo';
Run Code Online (Sandbox Code Playgroud)
它说无法读取未定义的属性“askAsync”。
有人知道我应该使用什么吗?我用的是sdk42
谢谢!
Kar*_*key 19
正如Brent Vatne的博客所说,
\n\n\nexpo-permissions 已被弃用,取而代之的是
\nmodule-specific permissions methods您应该从使用\n迁移Permissions.askAsync到Permissions.getAsync需要权限的模块导出的权限\n方法。例如:您应该将对\n 的调用替换为
\nPermissions.askAsync(Permissions.CAMERA)\nCamera.requestPermissionsAsync()\xe2\x80\x99 不应该有两种方法在单个 SDK 中完成相同的操作,\n因此我们选择了首选方法并进行了整合。
\n
所以现在,您必须使用Permissions单独的包
对于位置,
\n首先,安装expo-location
expo install expo-location\nRun Code Online (Sandbox Code Playgroud)\n然后你可以像这样使用它
\nexpo install expo-location\nRun Code Online (Sandbox Code Playgroud)\n
如果有人来到这里并想要获得 的权限ImagePicker,那么根据文档,您应该这样做:
import * as ImagePicker from "expo-image-picker";
const getPermissionAsync = async () => {
const { status } = await ImagePicker.requestMediaLibraryPermissionsAsync();
if (status !== "granted") {
alert("...");
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22919 次 |
| 最近记录: |