In the newest editions of Safari (and other Apple apps, like Books) you can select some text, then control-click for a context menu, and then "Translate" the text. You get two things:
The translated text
Play buttons that read you either language in nice Siri-like (realistic) text-to-speech.
Is there an API to do this that's available to our own apps?
Unfortunately I don't believe this is available as a developer API at this current time
Related
Is it possible to develop Android 11 widgets that appear on the Power Menu, exactly like Google Pay's card list?
So far I have discovered that there are a few useful guides on Device Controls, a feature that is very well suited for domotics and automation. For example the official article on Device Controls shows a fully fledged Power Menu with credit card swiping and domotics control.
I am interesting in developing a custom open source widget to browse fildelity (barcoded) cards. I have seen that the Quick Access Wallet feature is the one to use to display payment methods as swipable cards, but I have good reasons not to follow that road. First, it is designed for payment applications who hold NFC permissions, and secondarily it will disable Google Pay as default payment application for those who use it (and those who use another payment service will experience the same problem).
And Device Controls are templated and suited to be displayed in the Google Home's designated area.
So I'd like to ask if there are Android APIs to implement a fully customized widget to appear in the power menu. Of course I can kindly ask user for any permission necessary.
I start from the assumption that Google Pay itself is an application developed on top of Android framework, and has little to no special permission/policy-exception/whitelist from the OS, along with other payment applications.
I'd like to ask if there are Android APIs to implement a fully customized widget to appear in the power menu
Not in Android 11, at least in terms of public APIs.
I start from the assumption that Google Pay itself is an application developed on top of Android framework, and has little to no special permission/policy-exception/whitelist from the OS, along with other payment applications.
That is a very generous assumption. IMHO, do not assume that you can do anything that is being done by Google or the manufacturer of the device you are trying.
Is UI automation available for the main menu of the Apple TV and not a specific application? I already setup the whole UI testing thing using XCode and tried using the remote control but it is only available for the application that was defined using XCUIApplication.
So is it possible to control the whole system rather than a specific application? I was thinking of something similar to pyatv but using XCode since I might be able to get more information concerning the current focused apps and so on.
There is an API XCUIApplication(bundleIdentifier: ) to interact with not-AUT apps. You need to substitute the right identifier for this Springboard-like interface. Maybe it is a Headboard, but I'm not sure.
Bundle identifiers of tvOS apps https://github.com/rzakhar/XCTApps/blob/master/Sources/XCTApps/tvOS.swift
macOS apps, e.g. Photos.app, provide a help panel to the user
Is there a way to author such a Help Book in your own macOS app?
Is there a way to at least provide a toolbar to be used for a table of contents?
I am asking specifically about the UI and all the user interactions. Not how to generally create and register a helpbook.
Update
Here is what I’ve been able to find/gather/learn from others. A Help Book appears to run on a separate app/process called “HelpViewer”. Any Apple macOS app displaying a help makes use of a DDMViewerController that isn’t public.
There is an “app.css” and an “app.js” being used by the Apple macOS app “index.html” of the Apple Help Book. The Javascript one manipulates the DOM to create the “show-hide” link that toggles the Sidebar. Haven’t been able to find how to instruct HelpViewer to use a sidebar.
There is a WWDC talk from back in 2014, “Introducing the Modern WebKit API” that talks about “User Scripts” and “Script Messages” which allow communication between a Webview and Cocoa. https://developer.apple.com/videos/play/wwdc2014/206/
AFAICS, there is no way to have HelpViewer display a custom view or have a sidebar. My guess is that you would have to implement everything yourself. That is an NSSplitViewController, NSToolbar, NSOutlineView, any Javascript alongside the “app.css” to get the look and feel.
Currently it's not possible to implement the sidebar as shown in the Maps and other built-in macOS applications from 10.13 onward.
Versions of macOS from 10.10 (built-in applications) implement sidebar navigation with HTML and JavaScript, and Apple Help Viewer itself offers a window.HelpViewer object with some hooks that enable/disable the Help Viewer's table of contents button. Once enabled, it will callback into your own JavaScript where you can show/hide TOC via CSS or JS.
From approximately 10.10, Apple's non-built-in applications have also been using this technique. For example, iTunes and Xcode help both do this.
From 10.13, macOS has a newer version of Help Viewer that provides an actual Cocoa-native table of contents and windows splitter, as well as some new properties on window.HelpViewer; presumably these can be used to enable/disable the Cocoa sidebar and populate the TOC, but these are undocumented and I'm not sure anyone outside of Apple has been able to reverse-engineer this functionality yet.
And in any case, it wouldn't work if you offer Help Books to pre-10.13 users, and the use of undocumented API's restricts applications from the App Store (although, I'm not certain that Apple scans Help Book JavaScripts for API usage as part of their review).
(There are also a lot of other changes to how Apple's built-in application Help works now, too, but that's another topic entirely.)
Thus the answer for now is we can't, or shouldn't, or just don't know how. Alternatives include using something like using jekyll-apple-help (no affiliation) or Middlemac 3 (my project), or just rolling your own.
For those interested in knowing how Apple does it, I've documented a lot of it here (disclosure: link to my own website).
I'm not sure whether Apple's current applications still use it, but there is a very old API on macOS for Help Books. Apple has documentation on how to create them and some introduction. In short: Help books are standard HTML files with additional proprietary anchors. Those anchors are accessible via the class NSHelpManager, e.g. to open the help book at a specific page.
See also this question.
I have found that "Services..." a very useful place to add functionality via AppleScript.
I have written a small OS X app that uploads documents to a web based service (it requires OAuth2) and thought it would be great to add this functionality to the "Services" submenu. For example, when I am viewing a pdf in Preview to upload directly from a Services item.
I have tried wading through Apple's documentation on "Services", but I don't see how to add one outside of the Automator. I would be happy to use that but:
Do I need to make my app AppleScript-able? If so, how?
Is there another way to add Services outside of the Automator?
Thanks!
AppleScript/Automator are not needed, there's a couple steps involved (Info.plist entry and handler in your app). See the Services Implementation Guide for details.
I am getting started with Firefox addon development and have got myself acquainted with the Add-on Builder. Is this wizard all I need to get deep into Firefox addon development (if so, where would I create the XUL files and how would I create a custom toolbar?). Or is it that one cannot implement all features using this Add-on Builder? Also are there any good tutorials which explain how to get started with Firefox addon development using the Add-on Builder (because it seems so much easier).
Tutorials which I already have referred to:
https://developer.mozilla.org/en/Extensions
http://blog.mozilla.org/addons/2009/
But these are not specific to using the Add-on Builder. I would please like someone to point me to where I can find help to develop using the Add-on Builder.
Also if I am developing the addon locally using the SDK is there any good editor which I can use which will show me the list of commands that I can execute (like Eclipse in Java).
The red line is where i want my icon to appear. Is it possible to do it using the addon builder.
There are currently two kinds of Firefox extensions:
Classic extensions use a XUL-based user interface. They can do almost anything but it might take a bit until you see some results with your extension. For documentation on classic add-ons see How do I write a Firefox Addon?
Extensions based on Add-on SDK use HTML for user interface. The SDK provides a simple but limited API. In particular, it explicitly won't let you create toolbars, only single toolbar icons (which makes sense, extensions shouldn't be wasting so much screen space). It won't let you determine the icon placement either - as of Firefox 4 all extension icons are supposed to appear in the add-on bar (the user can customize the toolbars and change the placement however). You can get low-level platform access with chrome authority however. The official Add-on SDK documentation is pretty much all you've got here I think.Edit: Ok, the information on limitations of the Add-on SDK is somewhat outdated. As of Firefox 30, adding toolbars is possible. Also, as of Firefox 29 the icons are placed in the main toolbar by default - the add-on bar is no more. So the only real limitation remaining is the icon placement.
The Add-on Builder is merely a web interface to the SDK - it allows you to edit the extensions conveniently but otherwise it uses Add-on SDK to generate the extensions.
To put an icon directly in the toolbar currently, your best bet is to use Erik Vold's toolbar module ( available in Builder as a package ). here is an example that does that:
https://builder.addons.mozilla.org/addon/1044724/latest/