A-FRAME problem safari ios 13 with Motion & Orientation Access - aframe

how are you?
I wonder if anyone was able to solve, or had any solution with A-FRAME after the upgrade of IOS 13?
I work with Virtual Reality (VR) and use A-FRAME, but after this update the browser SAFARI no longer has the feature "motion & orientation access", compromising all my projects and my clients.
If anyone can help, thank you very much!

A proposed solution on A-Frame Github to request access to the API based on the new requestPermission:
DeviceMotionEvent.requestPermission()
.then(response => {
if (response == 'granted') {
window.addEventListener('devicemotion', (e) => {
// do something with e
})
}
}).catch(console.error)
I don't have an iOS 13 device to test on. If you can verify (and maybe open a PR on A-Frame) it will be appreciated.

Related

How to detect Oculus Go?

I'm looking at this question: How to detect Desktop vs. Mobile vs. GearVR vs. Oculus Rift vs. Vive in A-Frame?
It seems that AFRAME.utils.device.isMobile() is seeing the Go as a mobile device.
The check will ship in A-Frame 0.9.0 (as one of the comments mentioned). In the meantime you can incorporate the code to your application:
function isOculusGo () {
return /Pacific Build.+OculusBrowser.+SamsungBrowser.+MobileVR/i.test(window.navigator.userAgent);
}
This checks relies on the specific navigator.userAgent strings of the browsers available on Go (Oculus Browser and Samsung Internet). It's not super robust but the only known way to do it at the moment. Mozilla Firefox Reality has just been released and the expression above does not take it into consideration. I don't have a Go available to access the userAgent.

Instead of Chrome Custom Tabs in Samsung S6 Edge device opens its own Internet browser app

We use Chrome custom tabs in our app to open links. We have issue on Samsung S6 Edge. When we click on the link in our app, this device opens its own browser(called Internet) instead of Chrome custom tabs. When you press back button, sometimes instead of returning back to our app it will open Internet app from stack(if you already used this Internet app for browsing recently). If you didn't use recently Internet app for browsing, press back will correctly open you your app.
Custom Tabs is an open specification and other browsers besides Chrome may support it.
Having said that, it seems that there's a bug on the current Samsung's Internet Browser implementation (4.0.10-51) that causes the mentioned behaviour.
A temporary workaround would be to ignore the Samsung IB package when opening a Custom Tab. You can check how to discover which browsers support Custom Tabs on the getPackageNameToUse method on the Github Demo.
Modify the method to ignore the com.sec.android.app.sbrowser package. Then, force the package you want to use to open the Custom Tab like this:
customTabsIntent.intent.setPackage(packageName);
customTabsIntent.launchUrl(activity, uri);
I would also recommend taking a look on the Custom Tabs Best Practices to see how to prepare for the scenarios where more than one browser that supports Custom Tabs are installed in the system.
UPDATE: It seems that the latest version from Samsung's Internet Browser (4.2) has those issues fixed. The improved solution would be to check if the version of the installed browser is a compatible one. Something like the answer on this StackOverflow question can be used.
I checked with many Custom Tab client in Samsung latest phones.
I see that this issue is not observed in Samsung phones like Note 7 which has the latest version of their default Browser i.e Version 4.2 (Procedure to check version Menu options -> Settings -> About Internet)
So above solution of ignoring or bypassing "com.sec.android.app.sbrowser" package name is not necessary for their latest phones.
Workaround in Googles example code for custom tabs: CustomTabsHelper.java
// Get all apps that can handle VIEW intents.
List<ResolveInfo> resolvedActivityList = pm.queryIntentActivities(activityIntent, 0);
List<String> packagesSupportingCustomTabs = new ArrayList<>();
for (ResolveInfo info : resolvedActivityList) {
Intent serviceIntent = new Intent();
serviceIntent.setAction(ACTION_CUSTOM_TABS_CONNECTION);
serviceIntent.setPackage(info.activityInfo.packageName);
if (pm.resolveService(serviceIntent, 0) != null) {
//If the packagename is not the samsung thing, add it to the list
if (! info.activityInfo.packageName.equals("com.sec.android.app.sbrowser")) {
packagesSupportingCustomTabs.add(info.activityInfo.packageName);
}
}
}

Web Audio Mobile Safari Lock Screen Controls

I have a web audio player that uses Soundmanager2. Right now play/pause work on the lock screen and prev/next do not work. I worked on iOS 7 but I couldn't figure out why.
I see lots of talk about setting the track image and player controls in a native app, but not in an audio web app. That said I'd like to know why it quit working in iOS8 and what I can do to add a track image?
Update: Controls do not work in iOS 8, only on iOS7.
I found this on http://www.schillmania.com/projects/soundmanager2/doc/download/:
Side note: The prior release's pre-emptive fix for iOS 8 ended up being a non-issue, as the official iOS 8 release did not use "OS 10" in the user-agent string. Nonetheless, SoundManager2 will now correctly identify iOS 10+ vs. incorrectly flagging it as "iOS 1".
Since this question was asked Mar 21 '14 at 20:20, and the heading above it was
"version = "V2.97a.20150601"" (6/1/15), which means the update came after this question, and the edit, so
it should be able to work now.

Close other tabs chrome using asp.net

I am developing an intranet web application and the requirement is such that only one url should be opened at a time in chrome.
Currently the url is opened by a third party windows application on which we don't have any control!
Is there any way I can achieve that?
Summary is when the third party windows application opens the url (specified by me) all the other chrome tabs should close expect the current one.
Asuming all tabs are sharing the same domain, you can use JS localStorage with events on page load:
function storageChange(event) {
if(event.key == 'open') {
window.close();
//todo: except current window
}
}
window.addEventListener('storage', storageChange, false);
window.localStorage.setItem('open', true);
This will close all tabs with the same page loaded.
You should just detect the current one and keep it open
Finally I got my answer which was answered in another post in Chrome Extension to Loop to Close Non-Selected Tabs.
This solved my problem. All I had to do was close any window other than the current window. So at any point of time I will have only one chrome tab active.This solved my problem. Thanks for all your suggestions and comments. I am really sorry if I had said something wrong! Special thanks to #Harpyon ..

SDL Tridion 2011 Paste Special Function

The paste special function in SDL Tridion 2011 doesn't work in any current web browsers. Is anyone aware if this issue will be addressed in Tridion 2013? It was a real time-saver when it was functional, and prevented a lot of reformatting that's now unavoidable when pasting from Microsoft Word or any similar programs.
Mark - For me this does work i've just looked with both IE7 and FF18.
In IE the focus of the paste special pop-up dialog sometimes is never to the front, so I sometimes have to minimise the SDL Tridion edit window to find it.
Perhaps you could provide some additional information about the browsers and errors you receive?
Also fyi the supported browsers from the official SDL documentation shows:
Web browser Supported:
Internet Explorer 9.0 Safari 5.1 for the Mac Google Chrome, latest
version Mozilla Firefox, latest version
Paste Special works properly for us in Internet Explorer but not in Chrome or Firefox.
With the 2011 upgrade we’ve been pushing users toward Google Chrome because it is so much faster than IE or Firefox and paste special not working properly in Chrome has turned into one of the biggest usability issues our editors and producers are having with Tridion 2011 (not surprisingly they like to write primarily in msword.) We'veraised the issue of Paste Special not working iwht Chrom with Tridion support back in November and received two conflicting responses from them.
In both cases Tridion acknowledged knowing about the issue and in both cases they stated they would not fix the issue in Tridion 2011. The place the difference comes in is that in the first response we received from them they said they would be fixing the issue in Tridion 2013 and in the second response we received they said they had no plans on fixing the issue.
We did look into what was going on with the code to see if it was something we could fix by hacking the UI and what we found for Chrome was the following snippet which enables/disables the paste buttons:
if ($dom.isWebkit) // couldn't get it to work in Chrome
{
delete allowedActions["Paste"];
}
So basically it would seem like Tridion tried but gave up on implementing Paste Special in Chrome
Likewise in Firefox the buttons are enabled but when you try to paste special, nothing happens. Our development manager debugged and it turned out the paste method is throwing a silent exception -> NS_ERROR_DOM_XPCONNECT_ACCESS_DENIED in the following code when executing lDocument.execCommand:
var lPasteFailed = false;
try
{
pastingWithFlag = iProcessingFlag;
if (lPasteFailed = (!lDocument.execCommand("paste", false, null) || lDocument.body.innerHTML == ""))
{
throw Error("paste had no result - possibly clipboard data unaccessible");
}
if (pastingWithFlag == undefined)
{
lPasteFailed = true; // in certain cases lDocument.execCommand("paste"...) will cause paste into the main area in IE, which will be handled in the onpaste event handler -> do not paste again
}
}
catch (err)
{
$fa.canAccessClipboard = false;
lPasteFailed = true;
self.fireEvent("warning", { source: "paste()", message: err.message });
}
We are getting a lot of internal pressure to get this issue resolved so we’re going to be re-opening the issue with Tridion support and I am planning on getting in touch with my account rep sometime in the next couple days to raise this as a critical issue with him as well.
We re-opened this issue with SDL and here is their response with regards to where/when Paste Special should work in Tridion:
IE: supported and works. Any issues can be reported and we will look into fixing it.
Chrome: not supported (Chrome does not give access to clipboard)
Firefox: There are steps here to enable clipboard access (http://sdllivecontent.sdl.com/LiveContent/content/en-US/SDL_Tridion_2011_SPONE/task_RECON43B1609144D94562A394BB51FAC884B9),
although we have seen evidence of Firefox closing off clipboard access
similar to Chrome
Building an extension to enable paste special is outside of R&D
current scope.
On February 13, 2013 SDL will be announcing a contest during the
community webinar (http://webinars.julianwraith.com/).
The contest will challenge the community to create paste special
extensions for both the CME and XPM.
The contest will have prices to incentivize community participation.
People are frequently landing on this page, just want to let know, there is an extension available on Community now.
http://www.sdltridionworld.com/community/2011_extensions/pastespecial.aspx

Resources