I'm interested in using the html5 notifications api but have a few questions:
Is it possible to customize the notification background? By default it's white but I'd like to use black with a little transparency.
Is it possible to make the notification clickable? Or at least click back to the app in the Chrome browser? Or are notifications purposely not clickable?
Thanks
There are two types of notifications:
webkitNotifications.createNotification - this will create a generic notification that can be passed exactly three items: Title, Icon, Content
webkitNotifications.createHTMLNotification - this can be passed a url to an html page that will be displayed a notification
If you want more control than createNotification offers, use createHTMLNotification and pass it a custom html page.
Related
How can I create popup like in Ghostery and is it possible to have some HTML content in it?
Ghostery's purple bubble
The best way to implement a notification popup for a Chrome app or extension is to use the chrome.notifications API. You can choose to enrich the notification with a text or even an image, but HTML content is not supported. Find the complete documentation here: https://developer.chrome.com/apps/notifications
So using the Google Chrome Top Sites api has values for the url and the title, but when you load the default google chrome page it also has an image of those sites, is there any way to get that sort of image for an extension? If not how does google get that image and how can you get an image of the the user's top viewed website?
Since that it isn't possible to get a screenshot of a page without loading it inside a tab, Chrome is simply getting those screenshots while you're browsing your favourite sites. You can tell this easily because sometimes sites and images do not coincide (e.g. sometimes my facebook.com top site has the image of my profile page, but links to the home).
Then, if you want your screenshots of the Top Sites, you'll have to start without screenshots, and create them while the user browses the web by using the chrome.tabs API to check when a tab loads one of the Top Sites (listening to the event onUpdated), and get a screenshot of that tab using captureVisibleTab.
NOTES: make sure that you've requested the permission for "<all_urls>" in your manifest, which is required for captureVisibleTab to work. Additionally, you may find this question and its answer helpful.
It's unfortunately not possible*. Chrome stores those thumbnails internally in URIs not accessible from an extension.
There is an existing feature request: https://code.google.com/p/chromium/issues/detail?id=11854
If you look at the comments, one of the main use cases is to access site thumbnails to replicate the New Tab page.
Do star the feature request above to raise its priority if you want this functionality implemented.
* By that I mean that it's not possilbe to access Chrome's own internal store of thumbnails.
Furthermore, as Marco suggested the way to replicate that would be tab capture, but you can't do it "in the background" for privacy reasons - a user must make an explicit gesture (e.g. click the extension's button, press a shortcut, etc.) to perform capture.
Marco's answer is valid now, captureVisibleTab should be accessible upon events. But yes, as of now Chrome forces you to have very broad permissions and maintaining your own thumbnail store.
This is what I want to do.
Have a screen on my Android app with a few buttons on it. One of them would be the Chromecast icon, the other buttons would just be a few numbers most like (a "1" button, a "2" button, a "3" button etc).
When the cast button is hit, a default website is loaded (eg. www.example.com) on the TV. In the Android app, I still just see my buttons.
When a number his hit (ie. "1") the website changes, and www.example.com/parameter/1 is loaded for example.
I have been reading Google's documentation. If I understand correctly, I can create Android sender app code to do part 1 and 2. And a receiver application for part 3.
What I am confused about though is how I just get it to load a preexisting website. Surely I wouldn't need any custom HTML5 code for that? All I want to do is load a URL.
Could someone please advise me if what I want to do is possible, and if so point me in the right direction? Thanks
The default receiver only loads media URLs. Video, images, etc. If you want it to do anything else, like show a website, you need to create a custom receiver.
Luckily, that's rather easy, and they have some good samples on the Github account.
https://github.com/googlecast
Is it possible to show and hide the browser action icon from the options page?
I know how to do it with the page actions using the show and hide methods, but I don't see any similarities in browser actions.
From https://developer.chrome.com/extensions/browserAction:
If you want to create an icon that isn't always visible, use a page action instead of a browser action.
In other words: no, this isn't possible. Browser actions are permanent by design.
Google defined Browser Action as static buttons, and Page Action as dynamic ones.
Google is very careful with Chrome's interface, and don't want people use buttons in a different way they are "supposed" to do.
They do so because they think users have tu put an effort to learn to use Chrome, and Google want to present a consistent, coherent and minimalist user interface.
You don't have much freedom with regard to Chrome user interface.
Google phone opens up a small widget on the right of Gmail and stays there. Even when navigating to other emails or composing at email (similar effect is achieved I believe by Facebook chat).
Are they using frames? I hope not.
I need to keep some images open while the user navigates other parts of the application so using the approach of google to place my image holders would be ideal.
I'm not familiar with google phone, but maybe an iframe is what you are after:
http://www.w3schools.com/tags/tag_iframe.asp
It's an inline reference to another document.