Virtually click the "Back to [app]" button in iOS9 Safari - mobile-safari

Our team is building an iOS app which links out to Safari to process a charitable donation flow. In iOS 8, we can return the user back to the app by setting document.location to the app's custom URL scheme (e.g. myappscheme://donation/success), and everything flows fine for the user.
In iOS 9, Apple appear to have tightened their security model to display a popup dialog when exercising custom URL schemes in Safari - this allows the user to click "Cancel" and not link [back] out to the app.
My question is, given that iOS 9 now has a "< Back to [app]" button in the header of Safari - is there a way to 'tap' that link via JavaScript, rather than having to resort to a custom scheme, or Apple's new Universal Links mechanism?
Virtually clicking "Back to [app]" is desirable as it makes Safari slide back away to the right (the inverse of the way Safari now slides in from the right), rather than "re-opening" our app, like it does after clicking "OK" on the popup dialog. It also would stop iOS from putting a "Back to Safari" link in the top-left of our app which, is what happens when our app is opened via a Universal Link or Custom Schema.

You can't, or at least, Apple doesn't want you to. They've precisely implemented this mechanism to avoid this kind of automatic-fly-back-to-my-app scheme. If there were any documented way to do it using the SDK, that would result in a security issue.
However, in iOS 9, there is a new way to do this, and it involves hosting the web content in a Safari View Controller (SFSafariViewController), directly inside your app. This way you get all the benefits from Safari (user experience, shared cookies, etc.) and the user remains in your app (she can simply close the Safari view by tapping the 'Done' button on the top right corner of the screen).

Related

Can't Unmute YouTube Videos with Revolution Slider on Mobile

I'm using Revolution Slider in WordPress and I'm running into an issue where on mobile devices, I cannot unmute YouTube videos. I have videos in the slider to be muted on load in and to autoplay. I have interaction and controls both allowed. However, when I try to click the unmute button on the screen, it simply pauses/plays the video. I'm not sure if the pause/play button that appears somehow overlaps and the YT controls are underneath or something. It actually doesn't look like the controls generated from YouTube but instead the RS native controls. I tried turning controls and interaction both off but unsurprisingly, this causes absolutely zero action to happen when you click/press on the video, not even pause/play it.
You can view the issue in action at http://www.hagentertainment.com. The slide in issue is slide #2 out of 3.
Being an issue related to mobile and iframes makes it relatively difficult to diagnose with 100% efficacy. I used Browerstack to open a connection on a Galaxy S20 and noticed the issue as you described.
Using the Dev Tools, I was able to get it to allow the mute button to be clicked by changing the &enablejsapi=1 to &enablejsapi=0. You can see in this screenshot below that after doing that, it allowed it to be clicked. You also have a JavaScript parse error showing in the console - that could potentially be preventing a JS API controller (built into Revolution Slider?) from functioning correctly.
So it looks like your options (for the moment) are to fix that JS error and see if it works, or disable the JS API in the url of the videos

aFrame Mobile, staying in VR?

When using aframe on mobile and going from page to page I want it to stay in VR mode after the user clicks the VR icon in aframe.
However at the moment whenever you go from one page to another it kicks the user out of vr and the address bar appears so you have to manually click the VR button everytime you want to enter fullscreen again.
Is there a solution to this?
You can check out my aframe application below:
https://www.360belfast.com/app/options.html
I've read desktop solutions online but not much for mobile.
It's not possible. On mobile, A-Frame relies on fullscreen mode that doesn't persist on navigation. It has to be triggered by user gesture on each individual site. It's a browser policy that cannot be worked around. In-VR navigation is only available with a supported headset on Firefox and Supermedium on desktop, and Oculus Browser and Samsung Internet on standalone headsets.

Form filling and web scraping from a website

Not a good way to start, but pardon me if this if off-topic, it seems like a programming question though...
From an ASP.NET website I want to open a page in a new browser that has a toolbar at top and an iframe-like window at the bottom. The frame-like window will support tabbed browsing and load a third party website. The toolbar will have buttons that allow the user to manipulate the HTML (form-fill and web-scrape). For example, toolbar buttons may be "Extract Webpage Data" or "Fill Form".
Ideally it would work with IE, Edge, Chrome and Safari, but an absolute minimum requirement is IE, a more preferable minimum requirement is Chrome and Edge.
I have seen this done, well, by other proprietary software. I do not know if they require a specific browser (like IE where they can install a plugin) or how they do it, that is my question.
So I have narrowed this problem down to three possibilities:
Use pure HTML, Javascript, et al. - Using an iFrame almost works perfectly but the content will not be in the same domain so I cannot access the iFrame's HTML.
Use (or write) a proprietary browser - I do not think you can (or want) to launch an EXE from a web page, plus this seems rather complex in itself.
Use (or write) a plug-in - Probably limits use to IE. I think an IE plugin could do what I want based on other plugins I've seen.
I have past desktop programming experience with a web automation and scripting product, while promising, I don't think they offer what I need:
They have an ASP.NET COM component that runs server side so it does not display an interface to the user but can be used to silently fill and scrape a website based on scripts.
They also have a proprietary browser that shows a user interface and runs scripts to fill and scrape. But this is an EXE, so cannot be launched from a web site.
They have an IE Plugin, that adds a companion popup window that attaches itself to IE. Similar to their browser and runs scripts.
Question - This can be done, I've seen it, but what is the mechanism? I'm leaning to an IE plugin.
If plugins are the answer, chrome has extensions, is that a possibility?

Detect soft keyboard in Meteor cordova with ratchet

Meteor now support mobile apps. That's great. However, I find that the app running as a mobile app is not the same as running in a mobile browser.
When it runs as a mobile app, if the user wants to input to a text field, a soft keyboard shows up. Then, after the user finishes and click the button (at that point, the soft keyboard is still shown), the app brings to another page. However, the new page renders as if the soft keyboard still exists so the lower portion of the screen is blank. The elements that are rendered to a fixed position (like footer) still shows up at the bottom though. Even though the lower portion of the screen is blank, the elements are still there. If I tap the blank portion, and if there is a link or button in the place I tap, the app still brings me to the new page. Since I use Meteor and ratchet, I don't know which one is the issue.
I suspect the issue is that when the user clicks the button, the Meteor renders the new page immediately, but the soft keyboard get hidden afterwords.
This situation doesn't happen when the meteor app runs in a mobile browser, however.
I use meteor, iron-router, and ratchet. The issue is identified in an android 4.X device. Any idea how to fix the mobile app specific issue? Thanks.
PS. If I delay firing the page transition by a second, I don't have the issue. So my suspicion is correct that the page transition happens before the keyboard is hidden.

Missing Draw Link on Adopt Signature Dialog in Embedded Signing Session

Our implementation of Embedded Signing (aka In-Session, Captive Recipient, etc.) is now discovering yet another undocumented limitation. The document and Agreement dialog are loading correctly in the iframe. On the Adopt Signature dialog, however, there should be both a "Select Style" link and a "Draw" link. The latter enables the canvas feature for HTML5-compliant browsers for the user to draw their signature on a touch-screen or even using a mouse.
The "Draw" link does not appear when using IE (version 9, 10 or 11) -- and it is completely missing from the DOM. Chrome and Firefox render as expected. My conclusion is that a script to write the tag is not running. Additionally, other screen elements are skewed, as if an html tag is missing its closure or styling scripts have not completed.
Has anyone else encountered this issue?
Seems like I've heard of others encountering issues with some browser types/versions when trying to render the DocuSign signing session within an iFrame. If you haven't already done so, I'd recommend that you try rendering the DocuSign Signing session within its own browser window/tab (instead of rendering it within an iFrame). In addition to (hopefully) resolving the IE-specific issues that you're currently experiencing, rendering the DocuSign signing session within its own broswer window/tab also provides a much better user experience on mobile devices (due to the limited amount of screen real estate available).

Resources