-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Download File Support? #1
Comments
Thanks for the comment. Currently TLabWebView does not support file downloads. I would like to have it supported in the September update if possible. |
https://file-examples.com/wp-content/storage/2017/10/file-sample_150kB.pdf |
I added a download event callback test to the webview plugin in the latest commit. plugin is managed as submodule, but now the sample repository for vr (this repository) doesn't update that submodule to latest commit. so I'm not sure if this update will have compatibility for vr sample repository. I will update the submodule of vr sample repository after, but if you like you could update the submodule to the latest commit yourself before I update the submodule of the vr sample. below is the test code I use to test the downloading event callback. I'll update the submodule of this repository afterwards. DownlaodEventTesthttps://github.com/TLabAltoh/TLabWebView/blob/master/Scripts/Test/DownloadEventTest.cs using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TLab.Android.WebView;
public class DownloadEventTest : MonoBehaviour
{
[SerializeField] private TLabWebView m_webview;
private bool m_downloading = false;
private IEnumerator DownloadProgress()
{
m_downloading = true;
while (m_downloading)
{
m_webview.RequestCaptureDownloadProgress();
Debug.Log("[dltest] progress: " + m_webview.GetDownloadProgress());
yield return null;
}
}
public void OnDownloadStart(string message)
{
//argment:
//var unity_webview_dl_url (string),
//var unity_webview_dl_id (long)
//window.TLabWebViewActivity.unitySendMessage('Download Event Test', 'OnDownloadStart', 'download start. url: ' + unity_webview_dl_url + ', id: ' + unity_webview_dl_id);
Debug.Log($"[dltest] message receive: {message}");
StartCoroutine(DownloadProgress());
}
public void OnDownloadFinish(string message)
{
//argment:
//var unity_webview_dl_url (string),
//var unity_webview_dl_id (long)
//window.TLabWebViewActivity.unitySendMessage('Download Event Test', 'OnDownloadFinish', 'download finish. uri: ' + unity_webview_dl_uri + ', id: ' + unity_webview_dl_id);
m_downloading = false;
Debug.Log($"[dltest] message receive: {message}");
}
} |
Any ETA on when you are going to update the submodule of this repository? as I am not aware of how I can update the submodule to the latest commit. @TLabAltoh |
Now those changes are being merged into this repo, so the commit id of the submodule refarences in this repo has changed. Please refer to this and update the submodule to the latest commit. |
Is there anything specific I need to do in terms of coding to download the file? |
The download event is handled in the native webview plugin. unity side only can change the download folder. |
AndroidRuntime java.lang.IllegalArgumentException: Can only download HTTP/HTTPS URIs: data:application/pdf;base64,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 |
and I re-tried this one too, and its not working either. Still the download is stuck loading. @TLabAltoh |
I tried to reproduce the download at the URL given in the error message, but it was not treated as a download URL in either browser. It would be helpful to know on which page this error occurred. @HafizMSaad |
I am now testing on an android smartphone device. this page does not change when the download is complete. screen-20240328-212800.mp4so maybe this download process is not stucked. @HafizMSaad |
Which URL are you referring to? I'm a bit confused. Specifically, this occurred on https://dev.researchapp.radiusxr.com/vft-report.
|
The download on that link worked for me as well on my Oculus Quest 2! |
Blob URL Scheme and Data URL Scheme downloads are not officially supported by the Android download manager, so I had to implement a custom download handler in the native plugin. It took several days, but in the latest commit, blob @@url and data url downloads are implemented. @HafizMSaad |
I'm not sure what's wrong on my end, because its not working for me. Now the error has gone after I tried the below commands:
But I can't see anything inside my download folder in my VR headset after I try to download. |
The file is downloaded correctly, but the meta quest file browser does not recognise the downloaded file as being downloaded from a data URL scheme or a blob URL scheme. After restarting the Oculus device, the downloaded file will be detected. This may be due to the system design of the MetaQuest file browser, which optimises the file enumeration process by assuming limited use cases (There is no certainty). Please consider using a custom file browser such as Cx File Explorer instead of MetaQuest file browser (Cx File Explorer is officially supports Ocluls Quest) |
Wow! I just turned my headset on, and files are there. So, you are right, they are being downloaded, but not detected. |
@TLabAltoh I encountered another issue with my new custom-tailored headset. The application crashed when I tried to download the same PDF file by pressing the download button. |
@HafizMSaad I only have Oculus Quest 2 so I am not sure if I can solve the problem, if possible please provide device info and logcat output. |
I noticed in the README section that you mentioned: |
This is not because OpenXR might have a problem with webview. I used to have a problem with initial tracking rotation in OpenXR. There seems to be no problem to the webview, but I cannot exsplain this behavior. so I remove openXR and develop only with the oculus plugin. Downloading from data url scheme is just write file to local storage, so problem reason must be simple. Is there other problem case with downloading ? like download file from other url scheme, data url witch large size file etc ...@HafizMSaad |
Hello. Thank you very much for this asset. I have only one question. Is it possible to handle any file download from Unity and not through the native plugin? Or can I have in Unity the download link that I click on inside WebView? In other words, can I handle the download myself inside Unity? Thank you in advance. |
This is an amazing asset. Is there any support for downloading a file to the application folder?
The text was updated successfully, but these errors were encountered: