Skip to content
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

Closed
zerotransform opened this issue Aug 30, 2023 · 25 comments
Closed

Download File Support? #1

zerotransform opened this issue Aug 30, 2023 · 25 comments

Comments

@zerotransform
Copy link

This is an amazing asset. Is there any support for downloading a file to the application folder?

@TLabAltoh
Copy link
Owner

Thanks for the comment.

Currently TLabWebView does not support file downloads.

I would like to have it supported in the September update if possible.

@TLabAltoh
Copy link
Owner

File downloads are now supported

TLabWebView now supports file downloads. Use the Inspector to select whether files should be downloaded to the Downloads folder or the Applications folder.
Currently, it does not yet support the display of toast when the download is complete. Only file downloads are available.

When downloading to the application folder, the file will be downloaded to the subfolder specified in the inspector. (In this case, "downloads" is specified as the subfolder.)

Don't hesitate to tell me if it doesn't work :)

@HafizMSaad
Copy link

The sample PDF I am trying to download is stuck loading. Furthermore, I am not sure where my downloads will be kept. Under my Project directory or in another location, such as the application directory, which is accessible through Android Studio's Device Explorer
PDF Download

@TLabAltoh
Copy link
Owner

The sample PDF I am trying to download is stuck loading. Furthermore, I am not sure where my downloads will be kept. Under my Project directory or in another location, such as the application directory, which is accessible through Android Studio's Device Explorer
PDF Download

Could you send me the URL or link to the webpage you want to download?

@HafizMSaad
Copy link

The sample PDF I am trying to download is stuck loading. Furthermore, I am not sure where my downloads will be kept. Under my Project directory or in another location, such as the application directory, which is accessible through Android Studio's Device Explorer
PDF Download

Could you send me the URL or link to the webpage you want to download?

https://file-examples.com/wp-content/storage/2017/10/file-sample_150kB.pdf

@TLabAltoh
Copy link
Owner

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.

DownlaodEventTest

https://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}");
    }
}

@HafizMSaad
Copy link

HafizMSaad commented Mar 27, 2024

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

@TLabAltoh
Copy link
Owner

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.

@HafizMSaad
Copy link

Is there anything specific I need to do in terms of coding to download the file?

@TLabAltoh
Copy link
Owner

The download event is handled in the native webview plugin. unity side only can change the download folder.

@HafizMSaad
Copy link

HafizMSaad commented Mar 27, 2024

AndroidRuntime java.lang.IllegalArgumentException: Can only download HTTP/HTTPS URIs: data:application/pdf;base64,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

@HafizMSaad
Copy link

HafizMSaad commented Mar 27, 2024

The sample PDF I am trying to download is stuck loading. Furthermore, I am not sure where my downloads will be kept. Under my Project directory or in another location, such as the application directory, which is accessible through Android Studio's Device Explorer PDF Download

and I re-tried this one too, and its not working either. Still the download is stuck loading. @TLabAltoh

@TLabAltoh
Copy link
Owner

AndroidRuntime java.lang.IllegalArgumentException: Can only download HTTP/HTTPS URIs: data:application/pdf;base64,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

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

@TLabAltoh
Copy link
Owner

TLabAltoh commented Mar 28, 2024

I am now testing on an android smartphone device. this page does not change when the download is complete.

screen-20240328-212800.mp4

so maybe this download process is not stucked. @HafizMSaad

@HafizMSaad
Copy link

HafizMSaad commented Mar 28, 2024

AndroidRuntime java.lang.IllegalArgumentException: Can only download HTTP/HTTPS URIs: data:application/pdf;base64,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

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

Which URL are you referring to? I'm a bit confused. Specifically, this occurred on https://dev.researchapp.radiusxr.com/vft-report.

It seems like your Android application is encountering a fatal exception due to an IllegalArgumentException. The error message indicates that the application is trying to download a resource using a URI (java.lang.IllegalArgumentException: Can only download HTTP/HTTPS URIs). However, the provided URI is a data URI (data:application/pdf;base64,...).
Data URIs are not HTTP or HTTPS URIs, which seems to be the cause of the problem. The application seems to be attempting to download a PDF file encoded in base64 from a data URI.
To resolve this issue, you need to modify your application code to handle the data URI appropriately. You may need to decode the base64 data and then process it accordingly. Additionally, ensure that you're using valid HTTP or HTTPS URIs for downloading resources in your application.
@TLabAltoh

@HafizMSaad
Copy link

I am now testing on an android smartphone device. this page does not change when the download is complete.

screen-20240328-212800.mp4
so maybe this download process is not stucked. @HafizMSaad

The download on that link worked for me as well on my Oculus Quest 2!

@TLabAltoh
Copy link
Owner

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

@HafizMSaad
Copy link

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:

git fetch origin master                             
git pull origin master
git submodule update --init

But I can't see anything inside my download folder in my VR headset after I try to download.

@TLabAltoh
Copy link
Owner

TLabAltoh commented Apr 2, 2024

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)

@HafizMSaad
Copy link

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.

@HafizMSaad
Copy link

@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.
I know the issue is closed, but I thought it would be better to post here instead of creating a new ticket.

@TLabAltoh
Copy link
Owner

@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.

@HafizMSaad
Copy link

@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:
Plugin Provider | Oculus (not OpenXR)
Is there a specific reason for that? I chose OpenXR because I have no choice; it's necessary for my headset.

@TLabAltoh
Copy link
Owner

TLabAltoh commented May 10, 2024

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

@iliasmal
Copy link

iliasmal commented Jun 12, 2024

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 issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants