ionic 框架踩过的那些坑和总结
2015-11-30 12:02
525 查看
1:有时候添加插件之后,打包时插件未必能成功安装。这种事情还是很常见的,当你发现你安装的插件功能未能实现时,首先看看Xcode里有没有出现插件的OC源码。如果没有,那在WebStorm里在添加一次。如果有就去看看方法有没有掉用。(安卓也会出现这个问题)
2:尽量使用ngCodova官网提供的插件,(附上网址http://ngcordova.com/docs/plugins/)一些开源的插件不是不能用,目前来说问题还是比较多的,尤其是有些插件不是跨平台的。当然如果有能力的人可以尝试自己写插件(如果你既会安卓又会ios)。
3:在Xcode升级到7.1出现如图问题
,可以运行app,但是在打包app提交到appstore的时候会报错误Cordova/CDVViewController.h file not found。这个网上有解决方案:Header Search Path 加入"$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include"
4:IOS9 HTTP不能正常访问,在info.plist中修改(PS为了部分SDK的正常使用,希望无论你是否需要使用HTTP,都打开)
5:自定义插件:目前ionic会遇到一些瓶颈,尤其是一个技术氛围不是很好打团队。本身
Anjularjs就不是很精通,(也不是精不精通的问题,因为原生开发这块有好几年的积累,第三方资源比较多。像微信支付什么的就没JSsdk)不得不写原始插件来解决。
首先插件的目录结构如下图
Src里面放得是原生代码:分ios目录和android目录对应不同的平台
WWW文件放javascript文件
这里要讲一下
var exec = require('cordova/exec');你可以当成是固定形式 require 用于引入我们的类。
exports.textPlugin=function(success,error,info) {
exec(success, error, “LDtext", “texture", info);
};
exports 用于导出我们的方法。LDtext是原生里的类名。texture是LDtext类里的方法。(PS textEerr方法参数是 CDVInvokedUrlCommand* 这里跟参数传递有关 )
原生代码如下
@implementation LDText
- (void)textEerr:(CDVInvokedUrlCommand*)command{
NSLog(@“执行原生代码");
}
@end
还有一个是配置文件plugin.xml
<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
xmlns:android="http://schemas.android.com/apk/res/android"
// id: 插件的标识,即发布到 plugins.cordova.io 的 ID
id="cordova.LDText"
version="1.0.2">
<name>LDText</name>
//描述信息
<description>Cordova LDText Plugin</description>
<license>Apache 2.0</license>
<keywords>cordova,LDText</keywords>
<engines>
<engine name="cordova" version=">=3.0.0" />
</engines>
// js-module:对应我们的 javascript 文件,src 属性指向 www/LDText.js
<js-module src="www/LDText.js" name="LDText">
<clobbers target="LDText" />
</js-module>
//platform 支持的平台 <!-- ios -->
<platform name="ios">
<config-file target="config.xml" parent="/*”>
<feature name="LDText">
<param name="ios-package" value="LDText"/>
</feature>
</config-file>
//这里是引用原生类
<header-file src="src/ios/LDText.h" />
<source-file src="src/ios/LDText.m" />
</platform>
</plugin>
6:UI部分还是有问题,当然可能是我们水平有限,目前还在研究解决中。如果有经验的朋友可以加我QQ392539126,相互交流。
2:尽量使用ngCodova官网提供的插件,(附上网址http://ngcordova.com/docs/plugins/)一些开源的插件不是不能用,目前来说问题还是比较多的,尤其是有些插件不是跨平台的。当然如果有能力的人可以尝试自己写插件(如果你既会安卓又会ios)。
3:在Xcode升级到7.1出现如图问题
,可以运行app,但是在打包app提交到appstore的时候会报错误Cordova/CDVViewController.h file not found。这个网上有解决方案:Header Search Path 加入"$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include"
4:IOS9 HTTP不能正常访问,在info.plist中修改(PS为了部分SDK的正常使用,希望无论你是否需要使用HTTP,都打开)
5:自定义插件:目前ionic会遇到一些瓶颈,尤其是一个技术氛围不是很好打团队。本身
Anjularjs就不是很精通,(也不是精不精通的问题,因为原生开发这块有好几年的积累,第三方资源比较多。像微信支付什么的就没JSsdk)不得不写原始插件来解决。
首先插件的目录结构如下图
Src里面放得是原生代码:分ios目录和android目录对应不同的平台
WWW文件放javascript文件
这里要讲一下
var exec = require('cordova/exec');你可以当成是固定形式 require 用于引入我们的类。
exports.textPlugin=function(success,error,info) {
exec(success, error, “LDtext", “texture", info);
};
exports 用于导出我们的方法。LDtext是原生里的类名。texture是LDtext类里的方法。(PS textEerr方法参数是 CDVInvokedUrlCommand* 这里跟参数传递有关 )
原生代码如下
@implementation LDText
- (void)textEerr:(CDVInvokedUrlCommand*)command{
NSLog(@“执行原生代码");
}
@end
还有一个是配置文件plugin.xml
<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
xmlns:android="http://schemas.android.com/apk/res/android"
// id: 插件的标识,即发布到 plugins.cordova.io 的 ID
id="cordova.LDText"
version="1.0.2">
<name>LDText</name>
//描述信息
<description>Cordova LDText Plugin</description>
<license>Apache 2.0</license>
<keywords>cordova,LDText</keywords>
<engines>
<engine name="cordova" version=">=3.0.0" />
</engines>
// js-module:对应我们的 javascript 文件,src 属性指向 www/LDText.js
<js-module src="www/LDText.js" name="LDText">
<clobbers target="LDText" />
</js-module>
//platform 支持的平台 <!-- ios -->
<platform name="ios">
<config-file target="config.xml" parent="/*”>
<feature name="LDText">
<param name="ios-package" value="LDText"/>
</feature>
</config-file>
//这里是引用原生类
<header-file src="src/ios/LDText.h" />
<source-file src="src/ios/LDText.m" />
</platform>
</plugin>
6:UI部分还是有问题,当然可能是我们水平有限,目前还在研究解决中。如果有经验的朋友可以加我QQ392539126,相互交流。
相关文章推荐
- MySQL之CAST与CONVERT 函数的用法
- iOS9 HTTP 不能正常使用的解决办法
- 4人过桥
- 16、OSPF配置实验之LSDB过载保护
- C#网络编程之---TCP协议的同步通信(二)
- Centos 解决中文乱码与设置字符
- ACM-ICPC 2015 Asia Tsukuba Regional Online Open Contest B(两挡板之间放着圆球,求挡板最短距离)
- log4j 和slf4j的比较
- Tomcate内存配置详解
- iOS开发--常见坑(横竖屏问题)
- C#网络编程之--TCP协议(一)
- 进程和线程的区别
- ecshop订单-》待付款,待发货,待收货,收货确认
- 文章标题
- 使用Spring Session做分布式会话管理
- Linux环境变量相关文件
- ASP.NET动态网站制作(30)-- WEBService
- DOM – (w3school)1.DOM 方法 + 2.DOM属性 + 3.DOM 元素
- 推荐一个iOS关于颜色的库-Wonderful
- asp.net实现取消页面表单内文本输入框Enter响应的方法