通过控制器从服务中检索屏幕截图图片
Retrieving screenshot pic from service via controller
我想用 cordova-screenshot-plugin 截图。我可以将该图片保存为变量或其他内容,以便以后可以对其进行操作吗?截图服务:
.service('$cordovaScreenshot', ['$q', function($q) {
return {
capture: function(filename, extension, quality) {
extension = extension || 'jpg';
quality = quality || '100';
var defer = $q.defer();
console.log(defer);
navigator.screenshot.save(function(error, res) {
if (error) {
console.error(error);
defer.reject(error);
} else {
console.log('screenshot saved in: ', res.filePath);
defer.resolve(res.filePath);
}
}, extension, quality, filename);
return defer.promise;
}
};
}]);
我会尝试用按钮截屏,并用弹出窗口显示。
Cordova-Plugin-ScreenshotAPI给你图片的文件路径。可以从智能手机的任何位置访问此文件路径。因此,您可以将官方 github 存储库中提供的示例服务与控制器中类似的内容一起使用:
// app is define elsewhere in your application
app.controller('Awesome.Controller', AwesomeController);
AwesomeController.$inject = ['$cordovaScreenshot'];
function AwesomeController($cordovaScreenshot) {
var vm = this;
vm.onClick = takeScreenshot;
function takeScreenshot() {
$cordovaScreeshot.capture('mypic', 'jpg', 80).then(function(filepath) {
vm.filepath = filepath;
}
}
}
使用这样的 HTML 模板:
<button on-click="vm.onClick()">take screenshot</button>
<div ng-if="vm.filepath">
<p>Result: {{vm.filepath}}</p>
<img ng-src="{{vm.filepath}}>
</div>
我想用 cordova-screenshot-plugin 截图。我可以将该图片保存为变量或其他内容,以便以后可以对其进行操作吗?截图服务:
.service('$cordovaScreenshot', ['$q', function($q) {
return {
capture: function(filename, extension, quality) {
extension = extension || 'jpg';
quality = quality || '100';
var defer = $q.defer();
console.log(defer);
navigator.screenshot.save(function(error, res) {
if (error) {
console.error(error);
defer.reject(error);
} else {
console.log('screenshot saved in: ', res.filePath);
defer.resolve(res.filePath);
}
}, extension, quality, filename);
return defer.promise;
}
};
}]);
我会尝试用按钮截屏,并用弹出窗口显示。
Cordova-Plugin-ScreenshotAPI给你图片的文件路径。可以从智能手机的任何位置访问此文件路径。因此,您可以将官方 github 存储库中提供的示例服务与控制器中类似的内容一起使用:
// app is define elsewhere in your application
app.controller('Awesome.Controller', AwesomeController);
AwesomeController.$inject = ['$cordovaScreenshot'];
function AwesomeController($cordovaScreenshot) {
var vm = this;
vm.onClick = takeScreenshot;
function takeScreenshot() {
$cordovaScreeshot.capture('mypic', 'jpg', 80).then(function(filepath) {
vm.filepath = filepath;
}
}
}
使用这样的 HTML 模板:
<button on-click="vm.onClick()">take screenshot</button>
<div ng-if="vm.filepath">
<p>Result: {{vm.filepath}}</p>
<img ng-src="{{vm.filepath}}>
</div>