Ionic开发Hybrid App问题总结
http://ionichina.com/topic/5641b891b903cba630e25f10
http://www.cnblogs.com/parry/p/issues_about_build_hybrid_app_with_ionic.html
作者:Parry
出处:http://www.cnblogs.com/parry/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
此篇文章主要整理了最近在使用 Ionic 开发 Hybrid App 过程中遇到的一些疑难点以及后期发布生成 iOS 和 Android 版本过程中的种种问题。
文章目录
- Ionic 简介和项目需求介绍
- View 缓存的处理
- 键盘的不同模式的支持
- 设备网络状况的检查
- iOS 设备和 Android 设备的图标以及启动画面图片的批量生成
- 下拉刷新
- 反馈『意见及建议』调用邮件客户端的方法
- 给 App 评分不同平台的办法
- 集成极光推送
- 打包 iOS 、Android 平台的种种问题
- 项目开源和下载
http://gugujiankong.com/
键盘插件控制键盘模式的显示。
安装后在$ionicPlatform.ready中调用即可。
1 if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
2 cordova.plugins.Keyboard.disableScroll(true);
3 cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
4 }
5 if (window.StatusBar) {
6 // org.apache.cordova.statusbar required
7 StatusBar.styleLightContent();
8 }
对应的 input 只要添加相应的 type 进行控制即可,支持的所有 type 见这里。
使用效果如下。
网络检查插件后,在 App 启动的时候进行检测并提示即可。
1 document.addEventListener("deviceready", function () {
2 // listen for Online event
3 $rootScope.$on('$cordovaNetwork:online', function (event, networkState) {
4 var onlineState = networkState;
5 console.log("device online...");
6 })
7 // listen for Offline event
8 $rootScope.$on('$cordovaNetwork:offline', function (event, networkState) {
9 var offlineState = networkState;
10 //提醒用户的网络异常
11 $ionicLoading.show({
12 template: '网络异常,不能连接到服务器!'
13 });
14 })
15 }, false);
http://ios.hvims.com/
Android 相关资源生成:https://romannurik.github.io/AndroidAssetStudio/index.html
EmailComposer插件,在按钮的事件中调用即可。
$scope.feedback = function () {
if (window.plugins && window.plugins.emailComposer) {
window.plugins.emailComposer.showEmailComposerWithCallback(function (result) {
},
"给咕咕监控的建议", // Subject
"", // Body
["feedback@gugujiankong.com"], // To
null, // CC
null, // BCC
false, // isHTML
null, // Attachments
null); // Attachment Data
}
};
极光推送。
注册后进行插件的添加,也就是jpush-phonegap-plugin。
在用户登录的时候对用户按照别名或分组进行标识。
var arrayObj = new Array("Tags" + loginResult.UserId);
window.plugins.jPushPlugin.setTags(arrayObj);
个人推荐按照分组也就是 tags 进行标识,因为一个用户可能会使用不同的设备,那么推送的时候不同的设备就可以全部都收到通知,不至于漏掉推送消息。
API 端在监控 Server 端进行操作即可,也就是在检测到宕机后,进行极光 API 调用,发送宕机的提醒即可。
http://gugujiankong.com/
iOS 版本:https://itunes.apple.com/cn/app/gu-gu-jian-kong-zhuan-zhu/id1042192962?l=en&mt=8
Android 版本:http://www.wandoujia.com/apps/com.gugujiankong.iosapp
GitHub开源:https://github.com/ParryQiu/GuGuJianKong