Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/extensions/Variables/includes/ExtVariables.php on line 198

Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/extensions/Variables/includes/ExtVariables.php on line 198

Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/extensions/Variables/includes/ExtVariables.php on line 198

Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/extensions/Variables/includes/ExtVariables.php on line 198
SpringBoardPlugins: Difference between revisions - iPhone Development Wiki

SpringBoardPlugins: Difference between revisions

From iPhone Development Wiki
(adding link to theiphonewiki article)
(SpringBoardPlugins has many purposes, not only two.)
Line 1: Line 1:
[[SpringBoardPlugins]] contains plugins for {{applink|SpringBoard}}. The exact location for this directory is determined by the method <tt>-[</tt><tt>[[SpringBoard]] springBoardPluginsDirectory]</tt>.  
[[SpringBoardPlugins]] contains plugins for {{applink|SpringBoard}}. The exact location for this directory is determined by the method <tt>-[</tt><tt>[[SpringBoard]] springBoardPluginsDirectory]</tt>.  


SpringBoardPlugins serve two purposes:  
SpringBoardPlugins serve many purposes, but here is the two of them:  
# Supporting “ZoomTouch”, the accessibility feature that magnifies the screen by two to five times.<ref>Apple - Accessibility - iPhone - Vision http://www.apple.com/accessibility/iphone/vision.html</ref>
# Supporting “ZoomTouch”, the accessibility feature that magnifies the screen by two to five times.<ref>Apple - Accessibility - iPhone - Vision http://www.apple.com/accessibility/iphone/vision.html</ref>
# Supporting lock screen bundles, such as the Nike and iPod lockscreens. This is the basis of [[Cydget]]. See [http://theiphonewiki.com/wiki//System/Library/SpringBoardPlugins /System/Library/SpringBoardPlugins on TheiPhoneWiki] for a list.
# Supporting lock screen bundles, such as the Nike and iPod lockscreens. This is the basis of [[Cydget]]. See [http://theiphonewiki.com/wiki//System/Library/SpringBoardPlugins /System/Library/SpringBoardPlugins on TheiPhoneWiki] for a list.

Revision as of 10:52, 17 November 2013

SpringBoardPlugins contains plugins for SpringBoard. The exact location for this directory is determined by the method -[SpringBoard springBoardPluginsDirectory].

SpringBoardPlugins serve many purposes, but here is the two of them:

  1. Supporting “ZoomTouch”, the accessibility feature that magnifies the screen by two to five times.[1]
  2. Supporting lock screen bundles, such as the Nike and iPod lockscreens. This is the basis of Cydget. See /System/Library/SpringBoardPlugins on TheiPhoneWiki for a list.

Lock screen bundles have been supported starting in 2.1, and ZoomTouch starting in 3.0.

Structure of ZoomTouch bundle

The ZoomTouch bundle must be named ZoomTouch.bundle. The principal class should implement the +disableZoom and +enableZoom methods.

Enabling ZoomTouch

ZoomTouch is the only non-lockscreen plugin. As such, it is hard-coded into SpringBoard.

...
// Inside SpringBoard
[(SpringBoard *)[UIApplication sharedApplication] setZoomTouchEnabled:YES];
...

Structure of lock screen bundles

A lock screen bundle must have an extension of .bundle. The principle class should implement the +rootViewController method, and returns an SBAwayViewPluginController.

Enabling lock screen bundles

Lock screen bundles can be toggled using SpringBoardServices's SBEnableLockScreenBundle() function outside of SpringBoard, and SBAwayController's -enableLockScreenBundleWithName: and -disableLockScreenBundleWithName: within SpringBoard. When called outside of SpringBoard, the binary must have the com.apple.springboard.activateawayviewplugins entitlement.

References

  1. Apple - Accessibility - iPhone - Vision http://www.apple.com/accessibility/iphone/vision.html