我试图让相机(硬件访问)在Windows 10上的nativescript angular2应用程序中工作。
但是在构建命令提示后我仍然遇到错误: - tns运行android
这是我的代码:
app.component.ts
import { Component } from "@angular/core";
import cameraModule = require("camera");
import imageModule = require("ui/image");
@Component({
selector: "my-app",
templateUrl: "app.component.html"
})
export class AppComponent {
public takePic() {
cameraModule.takePicture().then(picture => {
console.log("Result is an image source instance");
var image = new imageModule.Image();
image.imageSource = picture;
});
}
}
app.component.html
<StackLayout>
<Label text="Take a picture" class="title"></Label>
<Button text="take" (tap)="takePic()"></Button>
<Label [text]="take" class="message" textWrap="true"></Label>
这是我得到的错误:
EXCEPTION: Uncaught (in promise): Error: android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/org.nativescript.camera/files/cameraPicture_1010201614233.jpg exposed beyond app through ClipData.Item.getUri()
答案 0 :(得分:1)
我只是在这里猜测,但很可能你正试图在Android N(Android 7)中拍照,而事实是不再允许定位file://
URI。新概念使用内容提供商处理文件,并表示NativeScript正在实施新的优化相机模块,该模块还处理Android的新文件要求。
新的相机模块计划与NativeScript 2.4.0一起发布,可以在this repository找到。
在this thread,你可以找到新的相机插件的基本用法,它也适用于imageAssets(如果你想现在测试它,你将需要tns-core-modules @,因为这将被发布在版本2.4.0)