Android style widgets on iOS


Recommended Posts

I've been messing around with this for a while, but I figured I'd post it up here and see what people made of it. It's a mod by a guy called wyndwarrior, that adds Android style html widgets to iOS pages. Now there isn't interactivity at the moment, but he does know how to do it (and shows it in his WP7 "theme") but he hasn't added it to this free mod yet. Normally I wouldn't post something like this up here, but granted the thread recently Why doesn't iOS do Widgets It seemed like it was worth it. Yes it does require a jailbroken phone, sorry vanilla people. All of the widgets are HTML and JS based, some have been taken from dashboard widgets and even widget builder sites.

From the Author:

Authors Thread on ModMyi

attachment.php?attachmentid=494700&stc=1&d=1294283407

Instead I offer you per-page HTML wallpapers. With this, you can have dynamic, (not yet) interactive backgrounds on every page. Things such as having a widget on each page, having a different animated background on each page or even an entire theme based off of interactive HTML widgets.

[Download] (Or in Cydia)

=====================================

Creating Page Widgets

=====================================

A widget is simply a folder under /var/mobile/Library/PerPageHTML, this folder is the name of your widget and will also be displayed in the PerPage app. A typical widget consists of a Widget.html or a Wallpaper.png or both. In the case of both, the Widget will be displayed on top of the wallpaper.

(Look at example widgets for more info)

The first thing to do is to make a folder under /var/mobile/Library/PerPageHTML

(NO SPACES)

This folder should be the name of your widget, and will also hold the contents of your widget.

Once you have created the folder, inside of it put a Widget.html and/or a Wallpaper.png. The Widget.html is a standard html file and the Wallpaper.png must be a 320x480 png file, or a 640x960 file.

To activate a widget, launch the PerPage app

attachment.php?attachmentid=499586&stc=1&d=1295826432

The select the widget

attachment.php?attachmentid=499587&stc=1&d=1295826432

Then choose a page for the widget to be displayed on. If you wish for that page to display nothing, select none and then the page.

Source Code:

	NSDictionary *myDictionary = [[NSDictionary alloc] initWithContentsOfFile:@"/var/mobile/Library/Preferences/PerPage.plist"];

	NSString *str1 = [myDictionary valueForKey:@"SpotLight"];
		if(str1 && ![str1 isEqualToString:@"none"]){
			if([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"/var/mobile/Library/PerPageHTML/%@/Wallpaper.png", str1]]){
				UIImageView *wallpaper1 = [[UIImageView alloc] initWithFrame:CGRectMake(0,0, 320, 480)];
				wallpaper1.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"/var/mobile/Library/PerPageHTML/%@/Wallpaper.png", str1]];
				[self addSubview:wallpaper1];
			}
			if([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"/var/mobile/Library/PerPageHTML/%@/Widget.html", str1]]){
				UIWebDocumentView *docView1 = [[[UIWebDocumentView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)] autorelease];
				[docView1 loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[NSString stringWithFormat:@"/var/mobile/Library/PerPageHTML/%@/Widget.html", str1]]]];
				[docView1 setBackgroundColor:[UIColor clearColor]];
				[docView1 setDrawsBackground:NO];
				[self addSubview:docView1];
			}
		}

	for(int i = 1; i<=11; i++){
		NSString *str = [myDictionary valueForKey:[NSString stringWithFormat:@"Page%d", i]];
		if(str && ![str isEqualToString:@"none"]){
			if([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"/var/mobile/Library/PerPageHTML/%@/Wallpaper.png", str]]){
				UIImageView *wallpaper = [[UIImageView alloc] initWithFrame:CGRectMake(i*320,0, 320, 480)];
				wallpaper.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"/var/mobile/Library/PerPageHTML/%@/Wallpaper.png", str]];
				[self addSubview:wallpaper];
			}
			if([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"/var/mobile/Library/PerPageHTML/%@/Widget.html", str]]){
				UIWebDocumentView *docView = [[[UIWebDocumentView alloc] initWithFrame:CGRectMake(i*320, 0, 320, 480)] autorelease];
				[docView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[NSString stringWithFormat:@"/var/mobile/Library/PerPageHTML/%@/Widget.html", str]]]];
				[docView setBackgroundColor:[UIColor clearColor]];
				[docView setDrawsBackground:NO];
				[self addSubview:docView];
			}
		}
	}

Widgets

Facebook Contagon

Endroid speedfeak228

Facebook + Twitter SnowLeo

Twitter JesseDegenerate

LowerAW Sheff1889

XBOX + PSN Gamertag MikeTheTech

RSS Weak-Sauce

RSS Jephre

HTC clock tieuthienvuong

Glow hsus

SimplScreen rossrossross

HTC clock BR0MERZ

Gallery Slideshow

**Note for the gallery slideshow you have to edit the slideshow.html in the "private" folder to the name of the files in your camera roll.

Examples

Slideshow

IMG_0814.PNG

Twitter

546958631.PNG

Normal HTC clock with animated weather

574466891.PNG

HTC clock + RSS feed

IMG_0807.PNG

Link to comment
https://www.neowin.net/forum/topic/974258-android-style-widgets-on-ios/
Share on other sites

Jailbreaking for widgets is nice...but it will be severely limited. We really need support in iOS so that app writers have an API to make widgets with. Widgets that are in complete sync with Facebook, Twitter, and Mail Apps would be awesome.

Lockinfo may be of use to some of you wanted calendar etc... It costs around $5. Bought it last year and have never looked back!

So far, this is the best app I've been able to find. This brings a "digest" view of SMS, Email, and Calendar to your lock screen.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Euro-Office must default to ODF to be considered "genuinely European", LibreOffice argues by David Uzondu Euro-Office is a web-based collaborative office suite that positions itself as a "European sovereign alternative" to American tech companies, backed by a coalition of developers including Nextcloud, IONOS, Abilian, BTactic, OpenProject, and, more recently, Tuta. The project officially went live a couple of days ago, but not before drawing heavy fire from LibreOffice developers, who called the marketing claim that Euro-Office represents the "first open-source office suite developed in Europe" a deceptive historical inaccuracy because projects like OpenOffice and LibreOffice existed decades earlier. Now that the project has launched, LibreOffice is back with another complaint, arguing that Euro-Office cannot consider itself "genuinely European" while it pushes proprietary Microsoft defaults on users. Euro-Office had promised to improve the OpenDocument Format (ODF) back in April, but the current release still plagues users with several technical failures. For instance, the suite lacks an admin setting to enforce ODF, and mobile editors completely block ODF saves, forcing files into Microsoft's OOXML formats. Some configurations force files into read-only mode, while editing frequently corrupts document formatting or erases data. LibreOffice thinks that merely supporting a format as an afterthought does not make you a sovereign alternative, as file formats are the battleground where" digital sovereignty is won or lost." The road to the first stable release of Euro-Office has been quite bumpy due to an aggressive public fallout with OnlyOffice, from which the coalition originally forked the project. OnlyOffice struck back by accusing the coalition of violating copyright terms under its AGPLv3 branding requirements by stripping the original branding anyway and forking the code. Getting Euro-Office up and running is a bit wonky (at least for non-technical users), as there is no direct installer to grab off the web. The easiest way we learnt is by using Docker. First, pull the official Euro-Office image from the GitHub Container Registry: docker pull ghcr.io/euro-office/documentserver:latest Then, run the container with active ports and a secure JWT token, enabling the test environment: docker run -i -t -d -p 8080:80 --restart=always -e EXAMPLE_ENABLED=true -e JWT_SECRET=my_secure_jwt_secret ghcr.io/euro-office/documentserver:latest And finally, open a web browser and go to the following address: http://localhost:8080 If you are running this on a remote server, replace localhost with your server's IP address. You will see the Euro-Office test page, where you can create new text documents, spreadsheets, or presentations directly in the browser. Image via Euro-Office Nextcloud promises that proper standalone desktop versions and mobile apps will arrive in a future release.
    • It’s any of their products not just windows.
    • Google Gemini has been failing for users across the United States, Europe, and Asia since early Wednesday morning, June 10, 2026, and more than six hours into the incident Google has yet to declare a fix............. https://www.techtimes.com/articles/318152/20260610/google-gemini-outage-tops-six-hours-errors-1076-1099-worldwideflash-lite-still-answers.htm
    • Fun fact: There are more Warhammer 40k games than there are stars in the universe.
    • laughing is tedious. Elephants really are laughing lazy, y'all..
  • Recent Achievements

    • Week One Done
      FBSPL earned a badge
      Week One Done
    • One Year In
      Jim Dugan earned a badge
      One Year In
    • One Month Later
      Tommi118 earned a badge
      One Month Later
    • One Month Later
      sjbousquet earned a badge
      One Month Later
    • Week One Done
      sjbousquet earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      486
    2. 2
      PsYcHoKiLLa
      197
    3. 3
      +Edouard
      155
    4. 4
      Steven P.
      83
    5. 5
      ATLien_0
      69
  • Tell a friend

    Love Neowin? Tell a friend!