http://blog.ionic.io/preparing-for-ios-9/

Preparing for iOS 9

Tweet

 

By Max on September 12, 2015

iOS 9 is releasing next week, and with it comes some changes and bugs that Ionic developers need to be aware of. Even if your app was published for an earlier version of iOS, you might still need to make some fixes due to regressions released by Apple in the web browser.

Apple sent out an email last night (Friday 9/11/2015) encouraging developers to test and submit their apps NOW to make sure they are out in time for iOS 9 release next week: “To prepare, build your apps using Xcode 7 GM seed, and test with the GM seeds of iOS 9. Read the App Review Guidelines and use TestFlight to get feedback before submitting to the App Store.”

This would seem to indicate there’s time to make the iOS 9 roll out if you test, fix, and submit ASAP.

window.location bug

UIWebView, where Ionic, Cordova, and web content historically ran, introduced a regression with the way window.location works. Basically, the value doesn’t properly update synchronously anymore.

The impact of this is that Angular’s browser location detection behaves in unpredictable ways, which bubbles up through UI-Router and impacts Ionic.

There is a fix that must be applied in your Angular/Ionic app. Please read my post and use the patch created by Igor from the Angular team found in it.

Also, empty href links <a href="#"> will trigger your otherwise state, so test those and remove the empty href if necessary.

Radio button issue

UIWebView broke how tilde CSS selectors work. The impact of this change is probably quite widespread on the web, but has manifested itself in an Ionic bug with radio buttons. We’ve removed the need for the tilde selector and the issue is resolved.

To fix, add the new ion-radio-fix directive and corresponding CSS from this gist. Make sure to change any reference to <ion-radio> to <ion-radio-fix>.

Note: this fix is now in Ionic master. So, if you’re feeling adventurous, you could alternatively use a new release of Ionic to avoid having to apply the radio patch.

App Transport Security

iOS 9 introduces a new security feature that blocks non-HTTPS traffic in your app. However, this is a new feature that is only enabled for apps building with X Code 7 and iOS 9 SDK today. It will not break existing apps.

Since the changes above require recompilation, this will impact your development process and manfiest itself as a breaking change.

To fix, edit the MyApp-Info.plist file and add the contents of this patch.

Conclusion

iOS 9 introduces a number of new features, but also several regressions in the supplied UIWebView browser. These issues are not present in iOS Safari, so mobile websites built with Ionic will not break. They are also not present in WKWebView, the new web view environment in iOS.

There is some good news here: Cordova will soon support WKWebView on iOS, which will bring some great performance and feature improvements to Cordova and Ionic apps. We will move to this new feature as soon as it’s ready, and we hope that will happen some time this fall.

Thank you to everyone who helped isolate and fix these issues. It always sucks when breaking changes happen, and going forward we are going to tighten up our OS release testing process to make sure we catch these regressions early and also assume that regressions introduced in iOS betas will not be fixed in time for the GM releases. Unfortunately, we assumed these glaring bugs would be fixed in time but they were not.

ionic preparing for ios 9的更多相关文章

  1. 【ionic】Mac IOS下真机调试

    模拟调试不能保证真机一定没问题,所以真机调试是非常必要的一步 IOS设备 启用设备调试 在IOS设备中(Iphone,Ipad)中开始web检测器 设备->safari->高级->w ...

  2. Ionic在线打包IOS平台应用

    参见:http://docs.ionic.io/services/profiles/#ios-app-certificate--provisioning-profile Ionic云编译,需要注册.地 ...

  3. mac系统 Xcode打包ionic项目(iOS)

    一.环境搭建 1. 安装Node.js,使用node -v 查询版本号: 2. 安装ionic: $ sudo npm install -g cordova(可以指定版本,如cordova@7.0.1 ...

  4. ionic 开发解决ios上qq客服链接不跳转或者跳转到appstore

    不能跳转的情况需要 在ionic项目根目录下,打开config.xml文件,在<access origin="*" />后添加<allow-navigation ...

  5. ionic platform add ios, Error:spawn EACCES

    RT: cordova ionic 环境搭建好之后,需要添加平台才能打包,添加平台如果出错:Error:spawn EACCES, 原因是因为没添加hooks, 请使用 ionic add hooks ...

  6. ionic 项目中ios上遇到的软键盘输入法自动弹出的问题

    一.  安装插件 cordova plugin add ionic-plugin-keyboard 二. 软键盘显示监听 window.addEventListener('native.keyboar ...

  7. Mac下安装ionic和cordova,并生成iOS项目

    为了开发HTML5,除了最新使用React Native等之外,目前首选的为稳定的ionic+Angularjs来开发iOS和android. Ionic(ionicframework一款接近原生的H ...

  8. ionic day01教程第一天之多平台运行(ios & android)

    一.创建项目 创建项目 ionic start myApp 运行项目 (1)通过浏览器运行项目 进入项目,后运行ionic serve cd myApp ionic serve 浏览器运行效果 二.多 ...

  9. ionic ios 左滑 白屏

    之前发现ionic在发布ios之后,左滑屏幕的时候会出现界面变白,但是画面原有的位置点击还是有效的,但是点击之后界面是不正确的,返回到上上一步 然后查找资料发现是ios系统内置的左滑动作造成了影响,修 ...

随机推荐

  1. linux进程管理之开机启动

    下面用自启动apache为例;自启动脚本:/usr/local/apache2/bin:./apachectl start文件位于/etc/rc.d/init.d下,名为apached, 注意要可执行 ...

  2. 【UVA】【11762】Race to 1(得到1)

    数学期望/马尔可夫过程 DP/记忆化搜索 刘汝佳老师白书上的例题…… //UVA 11762 #include<vector> #include<cstdio> #includ ...

  3. BZOJ3550: [ONTAK2010]Vacation

    3550: [ONTAK2010]Vacation Time Limit: 10 Sec  Memory Limit: 96 MBSubmit: 91  Solved: 71[Submit][Stat ...

  4. hdu 3336 Count the string(思维可水过,KMP)

    题目 以下不是KMP算法—— 以下是kiki告诉我的方法,好厉害的思维—— 就是巧用标记,先标记第一个出现的所有位置,然后一遍遍从标记的位置往下找. #include<stdio.h> # ...

  5. POJ 3277 City Horizon(叶子节点为[a,a+1)的线段树+离散化)

    网上还有用unique函数和lowerbound函数离散的方法,可以百度搜下题解就有. 这里给出介绍unique函数的链接:http://www.cnblogs.com/zhangshu/archiv ...

  6. java基础知识回顾之java Thread类学习(七)--java多线程通信等待唤醒机制(wait和notify,notifyAll)

    1.wait和notify,notifyAll: wait和notify,notifyAll是Object类方法,因为等待和唤醒必须是同一个锁,不可以对不同锁中的线程进行唤醒,而锁可以是任意对象,所以 ...

  7. hdu 1709 The Balance

    母函数的特殊情况,左右两边都可以放,如样例1,2,9 母函数为(1+x+1/x)*(1+x^2+1/x^2)*(1+x^9+1/x^9) 化简为(1+x+x^2)*(1+x^2+x^4)*(1+x^9 ...

  8. Android 动画的重复播放

    如果你要的加载xml方式设置动画,而且在xml定义了好几个动画元素比如:<set>    <alpha android:repeatCount="-1" andr ...

  9. Thread的第三天学习

    线程互斥 public void method1() {  synchronized(this) {  ... } } 等同于 public synchronized void method1() { ...

  10. 使用ajax()方法加载服务器数据

    使用ajax()方法加载服务器数据 使用ajax()方法是最底层.功能最强大的请求服务器数据的方法,它不仅可以获取服务器返回的数据,还能向服务器发送请求并传递数值,它的调用格式如下: jQuery.a ...