用ios webkit wkwebview负责支付页面,ios能过审吗

您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
WebKit在iOS上的技术调研.doc 11页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:150 &&
WebKit在iOS上的技术调研
你可能关注的文档:
··········
··········
WebKit在iOS平台上的开发
文件状态:
] 正式发布
] 正在修改 文件标识:
当前版本: 1.0
者: 邹月明
开始日期:
完成日期:
版 本 历 史
版本/状态 作者 参与者 起止日期 备注
1.0 邹月明
1. 基本信息 4
1.1. 背景 4
1.2. 目标 4
2. 背景知识 4
2.1 Mac OSX和iOS 4
2.2 Xcode、SDK 4
2.3 Interface Builder 4
2.4 Objective C 4
2.5 UIWebView 5
2.6 WebKit与NPP(Netscape Plugin) 5
3. 关键技术 5
3.1 用自定义协议实现HTML与Objective C互操作 5
3.2 用HTTP服务器的方式与HTML互操作 6
3.3 用Xcode提供的WebKit Plugin实现Webkit插件 6
3.4 用DOM实现对WebKit内容的操作 8
3.5 用NPP实现Webkit插件 8
3.6 用纯C++编写iOS程序 8
3.7 从WebKit在iOS上的实现内部找出路 9
3.7.1 确认WebKit是否支持Netscape plugin 9
WebKit-r91186 from
JavaScriptCore-721.26 from iOS 4.3 10
3.7.2 确认iOS下是否有独立的Webkit模块 10
3.7.3 我靠!似乎所有的路都没有了! 11
4. 参考文档: 11
Tang1.1将在iPad上提供会议服务,使用iPad的用户可以使用符合iPad平台特色的全时云会议服务。这其中包括了目前在Win32平台上云会议客户端所包括的所有功能。
在iOS下的WebKit支持哪种可以用C++实现的插件
在iOS下的Javascript如何与Objective C代码进行互操作
Mac OSX和iOS
Mac OSX和iOS都是苹果基于OpenBSD改造的操作系统,前者用于PC产品,后者用于iPhone、iPad等设备。
从实现上来看,操作系统内核是完全相同的,但后者是前者的子集,有好多功能在iOS中被“减配”了。
Xcode、SDK
苹果官方提供的集成开发与调试环境,它用于编写和调试基于Mac OSX和iOS的应用程序,该工具包含了Mac OSX和iOS平台的SDK,同时包含了iPhone和iPad的模拟器。
Interface Builder
图型用户界面构造程序。
Objective C
UIWebView是WebKit在iOS上的UIKit库中提供的,实现Web浏览视图的类。
WebKit与NPP(Netscape Plugin)
用自定义协议实现HTML与Objective C互操作
该方法是在网上能找到的最多,也是最“成熟”的方法。原理就是用Objective C实现一个iPhone程序,该程序用UIWebView装载一个HTML页面,并重载UIWebView的shouldStartLoadWithRequest函数,截获自定义格式URL的浏览请求,处理完成后再将返回值做为参数调用HTML页面的方法完成返回数据。
目前在google groups上能找到的开源工程有JSBridge。
还有一个著名的开源库PhoneGap也是采用该方法实现。
这么看来啊……如果真的没有其它更好的方法,那好像只能捏着鼻子用这个方法了。
该方案的优点是:
实现简单。
同时支持Mac OS X和iOS操作系统。
该方案的缺点是:
由于只能用字符串(可以用base64封装二进制数据)传递,所以对对象的支持不够好,需要花很大力气在O/R mapping上。当然对象之间的引用或复杂交互就更无从谈起了。
由于Javascript那边要做很多的编码和解码工作,性能瓶颈被完全压到了HTML这一侧。
后来惊闻有个用PhoneGap的公司的程序被AppStore拒了,后来他们买的200多$的PhoneGap产品后通过了审核。
用HTTP服务器的方式与HTML互操作
苹果上面可以写一个HTTP服务器,这样就可以从HTML做正规的Ajax页面与通信了。和上面的方法相比,这个方法客户端页面编写相对容易,但同样由于只能用字符串(可以用HTTP封装二进制数据)传递,所
正在加载中,请稍后...微信支付开发(APP)的各种坑,.net和iOS的各种陷阱,解决.net调用下单接口提示无权限,解决iOS跳转到微信支付页面中间只有一个确定按钮
时间: 07:04:14
&&&& 阅读:23395
&&&& 评论:
&&&& 收藏:0
标签:直入主题之前,请容我吐槽一下微*的官方东西:ASDFQ%#$%$#$%^#$%DSFQ#$%.......;吐槽玩了!大家心照就好。
要完成手机APP跳转到微信的APP进行微信支付,需要进行如下操作:
1、先去微信的开放平台()进行开发者账号的注册。
2、新建一个APP应用,然后填写必填信息提交审核。
3、进入APP应用,在接口信息中,进行申请&获得微信支付能力&的功能,期间会提交相关的公司营业信息证明等。
通过以上三点,然后经过漫长的等待之后,基本都可以申请下来的,这里不细说申请细节了,讲个大概,基本都能应付。
基本的对接流程在这里有细说()
在进行服务端对接之前,需要用到如下信息:
/* 微信app key 这两个就是我们上面申请的APP得到的*/W_APP_IDW_APP_SECRET//商户号W_MCH_ID--这个也是需要登录商户平台进行获得//API密钥,在商户平台设置W_API_KEY--这个需要登录商户平台进行获得
商户平台的登录地址()
一、.net服务端的对接:
1、直接上微信的SDK列表下载.net的SDK()
2、要先知道一点,下载回来的SDK是没有具体包含&统一下单API&的,只包含了这个&刷卡支付、微信内网页支付、扫码支付&
3、下载回来的SDK中,第一次运行是运行不了的,需要对代码进行设置
  1)对上面四个参数进行配置,具体在lib\Config.cs文件中
  2)屏蔽掉lib\HttpService.cs的代理访问:(这东西基本可以不用使用到)
4、通过以上的几步配置,基本可以运行了
5、还有一个点,我们点击Default.aspx页面上的按钮,链接过去的地址要注意一下,其实不是我们的测试工程,而是paysdk.的,这个需要改成是我们的测试功能才行(这个是比较吭的)。
6、如何对接&统一下单API&,最基本的做法就是打开business\JsApiPay.cs文件,然后拷贝GetUnifiedOrderResult方法直接用,但是如果拷贝这个方法用的时候,会提示&无权限调用&。其实最根本的错误在于我们传递的trade_type为JSAPI导致的,所以拷贝过来使用的时候,需要做如下的更新:(为什么要这样了,原因很简单,这个方法的用途本来就是给JSAPI的,我们是要使用trade_type为APP进行调用,这些参数当然要变拉)
只要这些字段即可,其余的可有可无,都不影响,到了这点,你运行&统一下单&功能,就会返回prepay_id了,也就是支付ID。
至此,通过这些设置,基本都可能成功。
二、iOS的对接,最常用的致命弱点就是,我把官方的请求地址换成了自己之后,点击支付测试,跳转到微信支付的页面时,中间就只出现了一个&确定&按钮,点击之后返回到原APP,提示&支付失败,xxx -2&这样的提示。
1、如果你有这些提示了,我可以很肯定的告诉你,你的sign错了,而且是用错了,你不应该直接用服务端返回的sign,这个根本不是一回事。
2、切记,客户端的sign字段,是要自己生成的。
3、还要切记,服务端返回的那一串json,最有用而且最优价值的就唯一一个prepay_id,其余的基本不需要。
4、官方的iOS SDK中,包含了两个方法(sendpay_demo、sendpay),这也是最容易错的,我们在对接的时候,选择sendpay的方法,也就是这个:
这个方法的东西其实是不完整,最明显,我们把网络请求改了之后,再把所用到的参数赋值,然后就没有然后了,根本调不起来,压根就没反应,原因是缺少了package参数值,这个是固定的(Sign=WXPay)
5、改了第四点之后,肯定是能调用起来的了,但是确不能支付,sign错误导致的,至此,你应该把注意力集中到sendpay_demo的方法中去,不要再使用sendpay方法了
只需要把刚才获取的prepay_id替换掉,立马就能正常使用支付功能,如下位置的参数替换成我们网络请求返回的的就行了:
总结,希望此篇文章对正在做微信支付对接的哥们有帮助,也让大家少走一些弯路,如果觉得合适,可以顺手点个赞,以此鼓励鼓励。thanks标签:
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!我的图书馆
大家都知道,adc中可以注册100个iOS设备,设备注册后,即使将其disable,也将继续占用名额。续费成功后的每个
membership year,以管理员身份(很显然,如果是individual账户,那就是你自己;如果是其他类型的账户,则必须是Team
Agents or Admins身份)登录到adc中管理devices,将有唯一的一次机会重置设备列表。
之前一直都没有机会尝试,今天终于逮着机会亲自体验了一把,截图以留念~
勾选需要保留的设备:
再次确认:
之前写过一篇文章描述了iOS 8中模拟器路径发生了更改(),最近越发觉得找路径不方便,于是烦不了自己操刀写了个Mac app,用来方便地查看开发中的iOS app的bundle数据和Documents文件。
下载链接:
& 修正了iOS 8.0 + 8.1共存时无法选择到8.1的bug。& first release
截图如下:
有任何问题请记得反馈 &
参考链接:
iOS app首次运行时,如果使用了某些敏感功能(比如访问相册、发送推送等),系统会弹出一个提示框,询问用户是否允许。用户一旦选择了允许或者不允许,之后似乎就没有后悔药吃了,因为即使你重装app,这个框也不会再弹出。
那正确的做法是什么呢?
1.删除该app
2.一天之后再次安装该app,此时又会弹出提示框了。
如果你是一个开发者,等一天绝对不是一个好策略
&下面的技巧在iOS 7上测试通过:
Delete your app from the device.Turn the device off completely and turn it back on.Go to Settings & General & Date & Time and set the date ahead a day or more.Turn the device off completely again and turn it back on.
够浅显直白的,不用俺翻译了吧
Update:神器iOS-Sim-Viewer横空出世有木有~
iOS8模拟器的位置发生了更改,查找起来更费劲了。你开发中的app的路径看起来类似这样:
/Users/[YOURNAME]/Library/Developer/CoreSimulator/Devices/284CBE24--913F-97CA3A2020C1/data/Containers/Data/Application/BFB10E7C--A986-815E94F534E4
其对应的app bundle所处的路径为:
/Users/[YOURNAME]/Library/Developer/CoreSimulator/Devices/284CBE24--913F-97CA3A2020C1/data/Containers/Bundle/Application/109A546C-AC80-4ED2-B8CE-C2BB3B3EA40D
由于Device和Application都用UUID来表示,你比较难以找到要找的路径。要么在Finder中根据最后修改时间来推算,要么通过查找Document中特定文件来搜索,除此之外也想不到好办法了。
发现个很不错的网站,把iOS设备各种参数搞成了一个图表。
这里直接把它的大图给扒拉过来一份以作备份。点击查看大图。
使用iCloud的KeyValueStore,可以实现不同设备上的app instance共享同一份数据。当然,前提是要用户登录了iCloud账号,并且启用了文稿与数据功能。
应用如何探测当前设备是否允许其使用iCloud服务?
1BOOL iCloudEnabledForThisApp = [[NSFileManager defaultManager] ubiquityIdentityToken] !=
可以用以上代码在模拟器和未登录iCloud的真机测试,返回值是NO。
接下来讲一下给应用配置iCloud的步骤。
创建一个iCloud Container:
为你的Bundle Id启用iCloud service,并把创建的iCloud Container加进去:
生成profile供打包使用,这里演示的development的profile,可以明确看到配置了iCloud:
XCode中配置entitlements,Capabilities中启用iCloud,勾选User key-value
store,并在Ubiquity Containers中添加你刚才在iTC中创建的Container ID。对于这个Container
ID,iTC中会自动加上iCloud.前缀,而这里则无需填写iCloud.前缀。
然后看一下Build Settings中的Code Signing Entitlements项,应该已经帮你配置好了。
Ok,把Profile也设置好后,就可以在真机进行测试了。
下面说一下基本的API。
直接上代码,以下示例会通过NSUbiquitousKeyValueStore往iCloud
store中写入一个key,然后调用[store
synchronize];强制同步。我们只能让NSUbiquitousKeyValueStore进行同步,但它到底何时同步无法保证。等待一会儿
后,退出程序。再次进入程序后,会从iCloud store中获取刚才写入的值,并用alert显示出来。
01if(iCloudEnabledForThisApp) {02&&&&&03&&&&NSUbiquitousKeyValueStore* store = [NSUbiquitousKeyValueStore defaultStore];04&&&&&05&&&&NSString* key1 = [store stringForKey:@"key1"];06&&&&if(key1) {07&&&&&&&&UIAlertView*
alert = [[UIAlertView alloc] initWithTitle:@"alert" message:key1
delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil, nil];08&&&&&&&&[alert show];09&&&&} else {10&&&&&&&&[store setString:@"laoyur.ml" forKey:@"key1"];11&&&&&&&&[store synchronize];12&&&&}13} else {14&&&&UIAlertView*
alert = [[UIAlertView alloc] initWithTitle:@"alert" message:@"iCloud
not enabled!" delegate:nil cancelButtonTitle:@"ok"
otherButtonTitles:nil, nil];15&&&&[alert show];16}
为了保持多app instance之间数据同步,那必然还得使用其通知API,这里就不复述了。
对了,还有iCloud的限制也必须明了:
它最多能存储1M的数据,最多可以同时存储1024个键(Key),单个值不能超过1M。单个键的长度在UTF8编码时不能超过64个字节当你注册NSUbiquitousKeyValueStoreDidChangeExternallyNotification监听时务必要指定默认的NSUbiquitousKeyValueStore对象(通过类方法defaultStore获取)为要监听的对象同步方法synchronize并没有立刻将所有的设置都写入iCloud,而只是保存到磁盘。可能需要一段时间才能和iCloud同步。
提供几个有用的链接:
目前可以同时用于iOS和Android的JS引擎:SpiderMonkey。
SpiderMonkey for iOS:
V8因为只能以JIT方式运行,所以只能在JB的iOS设备上运行。
Webkit的JS引擎JavaScriptCore for iOS:
当然,对于iOS 7,原生提供了JavaScriptCore framework。
JS在mobile设备上能干吗?
另外两篇中文博客,介绍了JS和ObjC相互调用的用例,非常不错:
还有这个博客,也有很大的参考价值:
收录自以下链接:。版权归原作者所有,本文仅为转载。
App Store 官方审核指南
感谢您付出宝贵的才华与时间来开发iOS应用程序。从职业与报酬的角度而言,这对于成千上万的开发员来说一直都是一项值得投入的 事业。我们希望帮助您加入这个成功的组织。我们希望通过发布&Apple iOS Human Interface Guidelines,帮助您解决开发应用程序时遇到的问题,以便于您在提交应用程序时,可以加快审批流程的速度。
我们将应用程序(Apps)视为与书籍或歌曲不同的产品,我们并不存储它们。如果您意欲批评宗教,那就去写本书。如果您想要描述性,写本书或写首歌
曲,或者可以创建一个医疗程序。这会出现非常复杂的局面,但是我们决定,在应用程序商店(App
Store)禁止出现这些种内容。这或许会让您认识到我们秉持的更为深远的目的:
我们拥有许多儿童可以下载的应用程序,除非父母事先进行了设置(一般父母都不会设置),否则父母对这些内容的操作控制将会无效。因此,您要了解我们时刻在留意着您的孩子。在我们的应用程序商店中已经拥有成千上万的应用程序。如果您的应用程序不具备有益的用途或者持续性的娱乐功能,则可能不会获得我方的接受。如果您的应用程序看上去像是那种只花了几天功夫简单拼凑出来的产品,或者只是想在我们的商店中抓住朋友的眼球,请提前做好遭拒的准备。我们有很多具有严谨态度的开发程序员不希望他们的高品质应用程序充斥在一些业余作品之中。我们将拒绝任何包含越界内容或行为的应用程序。您可能会问道,具体限制是什么?最高法院的法官曾有言:“它出现时我自然心中有数。”当您越过这一范围时,我们认为您也会有自知之明。如果您的应用程序被拒,我们设立了一个审(我们的)查委员会供您上诉。如果您去媒体抨击我们,肯定对您于事无补。如果您尝试去欺骗系统(例如,通过在审核过程中耍诡计、从用户身上偷去信息、窃取其他开发者的成果,或者操纵评估),你的应用将会在App Store中下架,并且您将会被驱逐出开发者项目。这是一个不断更新的文档,新提交的应用程序会导致新的问题产生,并可能随时产生新的规则。或许您的应用程序会触及到这一点。
最后要说明的是,我们非常珍惜这个平台,并且向您的作品表示敬意。我们确实在尝试尽力创建全球最佳平台,以便让您展示才华,同时获得相应的报酬。如果这读上去让您感觉我们的控制欲过强,那是因为我们曾向用户承诺保证,我们将利用我们的产品让他们获得高品质体验。
条款与条件功能元数据位置推送通知游戏中心广告相关商标与商业外观媒体内容用户界面购买与流通抓取与聚合设备损害人身攻击暴力不当内容隐私色情宗教、文化与种族竞赛、赌金、彩票与抽彩售物慈善与援助法律要件存折(Passbook)儿童类别
1. 条款和条件
1.1 为App Store开发程序,开发者必须遵守&Program License Agreement(PLA)、Human Interface Guidelines(HIG)以及开发者和苹果签订的任何协议和合同。以下规则和例子旨在帮助开发者的程序能获得App Store的认可,而不是修改或删除任何其他协议中的条款。
2.1 崩溃的程序将会被拒绝
2.2 有错误的程序将会被拒绝
2.3 跟开发者宣传不符的程序将会被拒绝
2.4 无应用文档或隐藏功能与描述不符的程序将会被拒绝
2.5 使用非公开API的程序将会被拒绝
2.6 在指定容器范围外读写数据的程序将会被拒绝
2.7 以任何方式或形式下载代码的程序将会被拒绝
2.8 安装或释放其他可执行代码的程序将会被拒绝
2.9 Beta版、演示版、Trial版和测试版的程序将会被拒绝
2.10 iPhone程序必须不经修改就能以iPhone分辨率和2倍 iPhone 3GS的分辨率在iPad上运行
2.11 与App Store已有程序重复的程序可能会被拒绝,特别是数量很多的情况下
2.12 没有显著用途或不提供任何持久娱乐价值的程序可能会被拒绝
2.13 主要内容为营销或广告的程序将会被拒绝
2.14 欺骗或有虚假功能,没有明确标明的程序将会被拒绝
2.15 大于&100MB&的程序不会通过蜂窝网络下载(App Store会自动禁止)
2.16 多任务程序仅可以为达到预期目的而使用后台服务:网络电话、音频播放、地点、任务完成、本地通知等
2.17 浏览网络的程序必须使用iOS WebKit框架和WebKit Javascript
2.18 鼓励过量饮酒或非法物质,或鼓励青少年饮酒或吸烟的程序将会被拒绝
2.19 提供不正确诊断或其他不准确设备数据的程序将会被拒绝
2.20 向App Store上传大量相似版本程序的开发者将会从iOS开发者项目中除名
2.21 只包含音乐和电影的简单应用,应该提交到iTunes store。只包含一本书的简单应用应该提交到iBooks Store。
2.22 随意通过位置或运营商来限制用户使用的应用会被拒。
2.23 应用必须符合&iOS Data Storage Guidelines,否则会被拒绝
2.24 在Newsstand中提供的应用,必须遵从&Program License Agreement&中的第1,2和3条,否则会被拒
2.25 与App Store类似的推荐或为其他应用做广告的应用将无法通过App Store审核。除非应用程序是为特殊的允许的需求或提供给一些特别的消费者重要帮助而设计的。
3. 元数据(名称、描述、评级、排名等)
3.1 带有任何其他移动平台名称的元数据程序将会被拒绝
3.2 带有占位符文本的程序将会被拒绝
3.3 带有与程序内容和功能不相关描述的程序将会被拒绝
3.4 连接到 iTunes 中的程序名称及显示在设备的程序名称应该相似,不至引起混淆
3.5 小型与大型程序的图标应该类似,不至引起混淆
3.6 程序图标与画面不符合4+年龄评级的程序将会被拒绝
3.7 目录与类型不适合于程序内容的程序将会被拒绝
3.8 开发程序员负责为其程序指定适合的评级。评级不适用可能会由苹果公司修改
3.9 开发程序员负责为其程序指定适合的关键字。关键字不适用可能会由苹果公司修改/删除
3.10 通过伪造,付费评价或其他非正规手段,获取 App Store 中较好的评价与星级的开发者会被取消IDP身份。
3.11 任何提示需要用户重启iOS设备来安装或运行的应用会被拒。
3.12 应用在提交审核过程中,所有涉及到的URL都要处于正常运行状态,例如保密协议,相关支持页面等。
4.1 在采集、传送或使用位置数据之前未通知并获得用户同意的程序将会被拒绝
4.2 使用基于位置的API用于车辆、飞机或其他设备的自动控制或自主控制的程序将会被拒绝
4.3 使用基于位置的API用于调度、车队管理或应急服务的程序将会被拒绝
4.4 地理位置数据只能被使用于一些由应用程序向使用者或被允许广告用途的特性或服务。 (4.4 Location data can
only be used when directly relevant to the features and services
provided by the App to the user or to support approved advertising uses)
5.推送通知
5.1 不采用苹果推送通知 (APN)应用接口提供推送通知的程序将会被拒绝
5.2 未从苹果获得推送应用ID便擅自使用APN服务的程序将会被拒绝
5.3 未获得用户初次同意便发送推送通知的程序将会被拒绝
5.4 使用推送通知发送敏感个人信息或机密信息的程序将会被拒绝
5.5 使用推送通知发送非请求消息或用于钓鱼或群发垃圾邮件用途的程序将会被拒绝
5.6 程序不可使用推送通知发送广告、促销或任何类型的直销
5.7 程序不能向使用推送通知服务的用户收取费用
5.8 使用推送通知会利用过多APN服务的网络流量或带宽或给设备带来过度负担的程序将会被拒绝
5.9 如果程序能够传送病毒、文件、计算机代码或程序,并且对APN服务的正常运行造成损害或中断,该程序将会被拒绝
6.游戏中心
6.1 向终端用户或任意第三方显示玩家ID的程序将会被拒绝
6.2 将玩家ID用于任何未经游戏中心条款批准用途的程序将会被拒绝
6.3 企图进行反射查找、跟踪、关联、挖掘、获得或利用玩家ID、化名或通过游戏中心获得的其他信息将会从iOS 开发程序员项目中除名
6.4 游戏中心信息(例如计分板得分)可能仅能用于游戏中心批准的程序
6.5 利用游戏中心服务发送非请求信息或用于钓鱼或群发垃圾邮件的程序将会被拒绝
6.6 过多使用游戏中心网络流量或带宽的程序将会被拒绝
6.7 如果程序能够传送病毒、文件、计算机代码或程序,并且对游戏中心服务的正常运行造成损害或中断,该程序将会被拒绝
7.广告相关
7.1 人工增加访问次数或者广告点击量的应用程序将会被拒绝
7.2 包含有空的iAd广告栏的应用程序将会被拒绝
7.3 主要设计目的在于显示广告的应用程序将会被拒绝
8.商标与商业外观
8.1 应用程序必须遵守使用苹果商标和版权以及苹果商标列表指导手册中说明的所有条款与条件
8.2 任何误导和暗示苹果公司是该应用程序来源或提供商,或者苹果公司以任何形式表示认可其质量或功能的应用程序将会被拒绝
8.3 与目前已有苹果产品或者广告主题外观相似混淆的应用程序将会被拒绝
8.4 在应用程序名称中将苹果产品名拼错的应用程序(例如,GPS for Iphone, iTunz)将会被拒绝
8.5 使用受保护的第三方材料(商标、版权、商业机密、其他私有内容)在申请时需要提供一份文本形式的版权确认
9.媒体内容
9.1 不使用媒体播放器框架(MediaPlayer Framework)获取音乐库中媒体的应用程序将会被拒绝
9.2 模仿任何iPod界面的应用程序将会被拒绝
9.3 通过蜂窝网络传输的音频流内容每5分钟不得大于5MB
9.4 通过蜂窝网络传输超过10分钟的视频流内容需要使用HTTP直播流(HTTP Live Streaming)并包含一个亟待64kbps仅音频的HTTP直播流
10.用户界面
10.1 应用程序必须遵守苹果&Apple iOS Human Interface Guidelines&中解释的所有条款和条件。
10.2 与App Store、iTunes Store和iBookstore等提供的iPhone捆绑应用程序类似的应用程序将会被拒绝。
10.3 未能按苹果&Apple iOS Human Interface Guidelines&所述,正确使用系统自带的按钮、图标等项目的应用程序可能会被拒绝。
10.4 创建alternat桌面/主屏幕环境或者模拟多应用程序widget体验的应用程序将会被拒绝。
10.5 改变音量大小和铃声/静音开关等标准开关功能的应用程序将会被拒绝。
10.6 苹果及我们的客户高度推崇简单、精致、富有创造性以及经过精心设计的界面。虽然需要付出更多,但却非常值得。苹果设立了很高的门槛。如果你的用户界面太过复杂或者水准不高,可能会被拒绝。
11.购买与流通货币
11.1 使用App Store以外的软件开启或提供额外功能的应用程序将会被拒绝。
11.2 使用应用内支付系统(IAP)以外的系统购买内容、功能或服务的应用软件将会被拒绝。
11.3 使用IAP购买实物商品和并非用于该软件的服务的应用软件将会被拒绝。
11.4 应用软件使用IAP购买信用点或者其他货币必须消费本软件内的信用点。
11.5 使用IAP购买已过期信用点或者其他货币的应用软件将会被拒绝。
11.6 使用IAP订阅内容最少需持续30天,所有iOS设备用户都可使用这项功能。
11.7 应用软件使用IAP购买的商品必须具有可购买性。
11.8 使用IAP购买iOS提供的照相摄像或陀螺仪等内置功能的应用软件将会被拒绝。
11.9 含有已超过限定时间的“出租”内容或服务的应用软件将会被拒绝。
11.10 保险应用软件必须免费,遵守发布地区的法律同时不能使用IAP。
11.11 一般情况下,应用程序越贵,评审越彻底。
11.12 提供收费订阅的应用必须使用IAP,Apple将会按照&Developer Program License Agreement中约定的70/30的比例与开发者分账。
11.13 应用中如果提供了IAP以外的收费或订阅机制,如:“buy”按钮,跳转到一个购买电子书的web页面,会被拒。
11.14 应用可以阅读或播放任何在应用以外取得授权的内容(包括指定的杂志,报纸,书籍,音频,音乐和视频),只要在应用中不允许出现获取授权的收费链接或按钮。Apple不会对在应用外订阅或购买授权项目收取任何费用。
11.15 应用只能自动更新订阅的期刊(报纸、杂志),自动更新商业应用(企业、生产力、专业创意、云存储)和媒体应用(视频、音频,声音)将被拒绝。
11.16 Apps may enable additional approved features or functionality
when used in combination with specific approved physical products (such
as a toy) as long as the additional features and functionality are
either completely dependent on such hardware (for example an App that is
used to control a telescope) or also available through the App without
the physical products, such as by way of reward for achievement or by
use of IAP
(11.16原作者未翻译,以下是laoyur自己翻译的版本)
应用与特定的被许可的物理设备(例如玩具)联合使用时,在以下情况下可以启用额外的、被许可的特性或功能:
1.这些额外的功能完全依赖于该设备(例如用于控制望远镜的应用);
2.应用通过“成就奖励机制”或者“程序内购买”等不必依赖于设备的方式提供额外功能。
12.抓取和整合
12.1 从苹果网站(例如、iTunes Store、App Store、iTunes Connect、苹果开发者计划等)抓取任何信息或者使用苹果网站的内容和服务进行排名的应用软件将遭到拒绝。
12.2 应用软件可以使用获得批准的苹果RSS feeds,例如iTunes Store RSS feeds。
12.3 只是简单的网页剪切、内容聚合器或者罗列链接的应用软件可能会被拒绝。
13.设备损害
13.1 怂恿用户以可能造成损害的方式使用苹果设备的应用软件将会被拒绝。
13.2 快速耗光设备电量或产生过多热量的应用软件将会被拒绝。
13.3 导致用户受到身体创伤将会被拒
14.人身攻击
14.1 具有诽谤、人身攻击性质以及内容狭隘卑鄙的应用软件或者打击特定个人或组织的应用软件将会被拒绝。
14.2 职业政治讽刺家不受这一禁令约束,可进行具有攻击性或狭隘刻薄的评论。
15.1 应用程序中出现人或动物被杀、致残以及枪击、刺伤、拷打等受伤情形的真实画面将会被拒绝。
15.2 出现描绘暴力或虐待儿童等内容的应用程序将会被拒绝。
15.3 游戏中出现的“敌人”不可指向一个特定种族、文化、一个真实存在的政府、企业或者其他任何现实中的实体。
15.4 对武器进行真实描述以怂恿非法使用或滥用这些武器的应用程序将会被拒绝。
15.5 内含与俄罗斯轮盘相关的应用程序将会被拒绝。
16.不当内容
16.1 应用程序中出现过于令人反感或者低俗的内容将会被拒绝。
16.2 在设计上用于激怒用户或令人感到厌恶的应用程序将会被拒绝。
17.1 应用程序不能在未获用户允许或未向用户提供如何使用及在何处使用数据的相关信息情况下传输有关用户的数据。
17.2 要求用户共享电子邮箱地址和出生日期等私人信息才可使用其功能的应用程序将会被拒绝。
17.3 锁定未成年人进行数据收集的应用程序将会被拒绝。
18.1 含有色情素材,也就是《韦氏词典》中定义的“旨在激发情欲,对性器官或性行为的明确描述或展示,而无关美学或情绪感受”的程序将会被拒绝
18.2 用户产生内容多为色情的程序(比如以前的Chat Roulette程序)将会被拒绝
19.宗教,文化与种族
19.1 涉及宗教、文化或种族群体的引用或评论包含诽谤性、攻击性或自私性内容,或会使特定群体遭受伤害或暴力的程序将会被拒绝
19.2 程序可以包含或引用宗教经文,程序所提供的引用或翻译必须准确且不会引起误导。评论应该有教育意义,可以令人开阔眼界,而不应有煽动性
20.竞赛、赌金、彩票与抽彩售物
20.1 赌金和竞赛必须由程序的开发者/公司发起
20.2 赌金和竞赛的正式规则必须在程序中注明,并且必须明确表示苹果不是发起者,也没有以任何方式参与活动
20.3 开发者运营的彩票程序必须在法律容许范围之内,彩票程序必须具有以下所有特性:报酬、几率及奖品
20.4 允许用户直接购买彩票或抽彩售物券的程序将会被拒绝
20.5 应用程序提供现实金钱赌博(例如,体育博彩,扑克,赌场游戏,赛马等),必须具备使用应用程序当地的证明和允许,并且收到当地的约束和限制。另外该应用必须在App store中免费。
20.6 使用IAP购买信用值或货币参与现实金钱有关的赌博会被拒。
21.慈善与援助
21.1包含可以向认证的慈善组织捐赠功能的程序必须是免费的
21.2 捐赠款项的募集必须通过Safari浏览器中的网站或是手机短消息。
22.法律要件
22.1 程序必须遵守各地用户遵守的任何法律要求。开发者有义务了解并遵守当地所有法律
22.2 包含虚假,欺诈或误导性陈述的程序将会被拒绝
22.3 请求、促进或鼓励犯罪或明显鲁莽行为的程序将会被拒绝
22.4 使用非法文件共享的程序将会被拒绝
22.5 被设计用作非法赌博辅助工具,包括算牌的程序将会被拒绝
22.6 具有拨打匿名或恶作剧电话或发送类似短信/彩信功能的程序将会被拒绝
22.7 开发暗中收集用户密码或用户私人数据程序的开发者将会从iOS开发者项目中除名
22.8 任何非法律执行部门发布的带有DUI检查点信息,或鼓励且协助酒后驾车的应用会被拒。
22.9 计算药物计量的应用程序必须由药物制造商或组织机构(例如,医院、保险公司和大学)提交。
23. 存折 (Passbook)
23.1 Passbook通行证能被使用于支付或收款、货物转移或提供身份认证(例如电影票、机票、优惠券和奖品发放)。其他的用途回导致应用程序被拒,并撤回Passbook证书
23.2 通行证必须包括有效的发行者联系信息,否则应用会被拒绝并撤回Passbook证书
23.3 通行证必须被以名字、特征或商标使用该通行证的实体进行签名,否则应用会被拒绝并撤回Passbook证书
24. 儿童分类
24.1 主要提供给儿童使用的应用程序必须包含隐私条例,并遵从有效的儿童隐私法规。
24.2 主要提供给儿童使用的应用程序不能包含商业行为(例如,在应用程序中,用户使用时,不能提供广告),任何上下文有关的广告必须符合儿童用户。
24.3 主要提供给儿童使用的应用程序必须得到使用儿童父母的允许,或在用户链接到应用外或进入商业活动前,使用监护人入口。
24.4 归入儿童分类的应用程序必须符合年龄范围在5岁或一下、6到8岁、9到11岁的使用而设计。
撰写这篇文档,表示我们尽全力与您分享我们是如何审核提交到App Store的应用的,而且我们希望这个指南能够对您开发和提交应用有所帮助。这是一份动态文档,我们将根据新近应用和情况定期更新这篇文档。
感谢您为iOS开发应用。尽管这是一份“禁止”列表,但请谨记那份更短的“必做”列表。最重要的是,加入我们就是要给用户带来惊喜和愉悦。把世界用
最具创意的方式展示给他们,让他们以前所未有的方式交互。根据我们的经验,用户真的会对功能和界面上的改进有所反应。进一步改进你的作品。带给用户超出期
望的体验。带给用户前所未有的体验。我们将协助您完成这一切。
在移植iOS的内购验证VerificationController时,发现原来好好的代码突然报错:Goto into protected scope。
搜索了一番,修改方法如下:
报错的代码:
12&&&&BOOL err = NO;3&&&&goto EXIT;4&&&&UInt32 size = 0; // 'Goto into protected scope' Error&&& 5&6EXIT:7&&&&8}
0102&&&&BOOL err = NO;03&&&&goto EXIT;04&05&&&&{&&& //goto语句后,添加花括号以便强制作用域06&&&&&&&&UInt32 size = 0;07&&&&}08&09EXIT:10&&&&11}
馆藏&23397
TA的最新馆藏
喜欢该文的人也喜欢}

我要回帖

更多关于 ios webkit 简书 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信