iOS编译优化策略Optimization Level
开发汉信码扫描功能时,扫描个别汉信码,Release
环境下会闪退,Debug
环境下正常。没有找到崩溃原因,暂时更改Optimization Level
下的Release
为None[-O0]
,这样Release
下也会和Debug
一样,对代码没有优化操作。
更改位置:
|
|
跳转京东客户端某商品详情页
iOS9以后,app内打开其他app需要在Info.plist
里添加LSApplicationQueriesSchemes
白名单。
跳转京东客户端需要增加京东的URL Scheme:openapp.jdmobile
首先要判断手机里是否安装京东客户端:
|
|
跳转京东客户端:
|
|
跳转京东客户端某商品详情页:
|
|
注意:openUrl字符串要原封不动的拷贝到应用中使用,里面的%22、%7等保持原样,不要转义。中间部分的99999999
是京东的商品编号:defSkuID
,跳转到该商品的详情中。
OC与JavaScript交互
在APP内使用UIWebView展示网页,有时候需要和网页进行功能交互和数据传递。
最简单的一种交互是使用UIWebView
的Delegate方法拦截webView的加载地址,和给定的地址匹配,如果匹配则不允许加载,并跳转到指定控制器,如果不匹配则允许加载。
拦截加载地址:
|
|
iOS7以后,苹果推出了JavaScriptCore
,用它可以直接完成oc和js之间的交互通信。下面介绍利用代理实现js调用oc中的方法,并完成数据传递。
第一步:在加载UIWebView的控制器中创建JSExport
的协议,并写入和js约定好的方法,方法名要一致。该控制器遵守协议,并实现协议方法,完成webView和该控制器的交互。
|
|
第二步:在网页加载完毕时,获取js运行环境,并且设置方法对象的代理。
|
|
第三步:实现代理方法
|
|