Ionic2/angularJs2中的静态类 PhotoLibrary 调用不上
photoLibrary调用报错:No provider for PhotoLibrary;
在调用相册文件时有用到photolibrary,总有些莫名的报错,3月份的时候这个坑让我不知所措,现在写下来方便查看(也不知道Ionic2现在是否有变化),入坑过程:
按照官网示例:
1.添加插件:
cmd 到项目目录运行:
ionic plugin add cordova-plugin-photo-library --variable PHOTO_LIBRARY_USAGE_DESCRIPTION="To choose photos"
2. ts文件中添加:
import { PhotoLibrary } from '@ionic-native/photo-library';
constructor(private photoLibrary: PhotoLibrary) { }
this.photoLibrary.requestAuthorization().then(() => {
this.photoLibrary.getLibrary().subscribe({ next: library => {
library.forEach(function(libraryItem) {
console.log(libraryItem.id); // ID of the photo
//........
}); },
error: err => {}, complete: () => { console.log("could not get photos"); } }); })
.catch(err => console.log("permissions weren't granted"));
好,这一运行,就出现No provider for PhotoLibrary;
查了很久---------,终于发现了这个鬼;
在查看PhotoLibrary.java看到了一些静态的内部的类(没深入了解java---大概是这个意思):
public static XXX{}
而在java中的静态类 是不能使用继承的(使用 this、super关键字);
所以在.ts文件中就这样做-------->
import { PhotoLibrary } from '@ionic-native/photo-library';
constructor() { //1.构造函数中不注入PhotoLibrary
}
theFunction(){
//2.直接使用--不用this
PhotoLibrary.requestAuthorization().then(() => {
PhotoLibrary.getLibrary().subscribe({ next: library => {
library.forEach(function(libraryItem) {
console.log(libraryItem.id); // ID of the photo
//........
}); },
error: err => {}, complete: () => { console.log("could not get photos"); } }); })
.catch(err => console.log("permissions weren't granted"));
}
ionViewDidLoad(){
//3.调用方法
this.theFunction();
}
--------------最终调用成功了-------------------
总结:如果遇到类似的静态类,可以参照此方法。
Ionic2/angularJs2中的静态类 PhotoLibrary 调用不上的更多相关文章
- 在 Visual Studio 中调试时映射调用堆栈上的方法
本文转自:https://msdn.microsoft.com/zh-cn/library/dn194476.aspx 1.创建代码图,以便在调试时对调用堆栈进行可视化跟踪. 你可以在图中进行标注以跟 ...
- vue:再vue-cli项目中使用window以及调用window上的方法
一: 1:在main.js中 Vue.prototype.myfunction = function() {/*你的自定义Vue方法*/} 2:在mounted(或其他生命周期中) 或者 method ...
- YbSoftwareFactory 代码生成插件【二十五】:Razor视图中以全局方式调用后台方法输出页面代码的三种方法
上一篇介绍了 MVC中实现动态自定义路由 的实现,本篇将介绍Razor视图中以全局方式调用后台方法输出页面代码的三种方法. 框架最新的升级实现了一个页面部件功能,其实就是通过后台方法查询数据库内容,把 ...
- C#同一项目中不同文件或类中的方法进行调用
有两种方法,一是将被调用的类设置成静态类Static,这样就可以直接点出来了,二是将被调用的方法所在类设置成public,这几必须在调用类中先将被调用的类进行实体化,new()出来,再点出来. 一. ...
- JAVA中MESSAGEBOX,静态类直接引用
原文:JAVA中MESSAGEBOX,静态类直接引用 package cisdi.mes.wrm.mcode.serviceImpl; import javax.persistence.Entity; ...
- Tesseract API在VS 2013中的配置以及调用
[Tesseract]Tesseract API在VS 2013中的配置以及调用 时间:2016-05-31 20:35:19 阅读:127 评论:0 收藏:0 ...
- callable object与新增的function相关 C++11中万能的可调用类型声明std::function<...>
在c++11中,一个callable object(可调用对象)可以是函数指针.lambda表达式.重载()的某类对象.bind包裹的某对象等等,有时需要统一管理一些这几类对象,新增的function ...
- 《同一个类中不同方法之间的调用相关问题(省略的类名或者this)》
//同一个类中不同方法之间的调用相关问题(省略的类名或者this) class A { public void B() { System.out.println("b方法运行"); ...
- javascript中onclick事件能调用多个方法吗
Q: javascript中onclick事件能调用多个方法吗? A: 可以的,方法如下onclick="aa();bb();cc();"每个方法用“;”分号隔开就行了
随机推荐
- Sound Card Chip
DELL sigmatel stac Hewlett-packard conexant High Definition Audio chip lenovo(IBM) Analo Devic ...
- python爬虫实践
模拟登陆与文件下载 爬取http://moodle.tipdm.com上面的视频并下载 模拟登陆 由于泰迪杯网站问题,测试之后发现无法用正常的账号密码登陆,这里会使用访客账号登陆. 我们先打开泰迪杯的 ...
- 策略模式&反射
业务代码 class Operate { public string _firstKey; public string _secondKey; public string _extendKey; pu ...
- VC++6.0不能显示MSDN解决的方法
1.搜索看系统是否有Vshelp.dll文件.没有则去站点下载一个 位操作系统直接将下载的文件放在C:\Windows\System32 位操作系统则放在C:\Windows\SysWOW64 3.点 ...
- AutoreleasePool 分析
前言 AutoreleasePool自己主动释放池,对于自己主动释放对象的作用怎样? 释放池中的自己主动释放对象什么时候会被释放? MRC环境下 场景1 NSString *string_var_ = ...
- Class 与 new的配合使用
class Type{ // 定义新的类型Type /// ...... }; Type a; Type b; // 像int a; int b;那样使用, 定义a和b为Type类型的变量 in ...
- __init__、__str__、__del__方法
1.def__init__()方法: class Cat: """定义了一个Cat类""" #初始化对象 def __init__(self ...
- HTML DOM createTextNode() 方法
实例 创建一个文本节点: var btn=document.createTextNode("Hello World"); 输出结果: Hello World 尝试一下 » HTML ...
- Hadoop 分布式环境slave节点重启忽然不好使了
Hadoop 分布式环境slaves节点重启: 忽然无法启动DataNode和NodeManager处理: 在master节点: vim /etc/hosts: 修改slave 节点的IP (这个时候 ...
- HashMap1
一.Java并发基础 当一个对象或变量可以被多个线程共享的时候,就有可能使得程序的逻辑出现问题. 在一个对象中有一个变量i=0,有两个线程A,B都想对i加1,这个时候便有问题显现出来,关键就是对i加1 ...