//Example to load sample.pdf placed in StreamingAssets
private void LoadLocalFile()
{
string PDF_VIEWER_PATH = "file:///android_asset/mozilla/pdfjs/pdf_viewer.html?file=";
string fileName = "sample.pdf"; // Change to your file
StartCoroutine(CopyToPersistentPath(Application.streamingAssetsPath, fileName, (string copiedFilePath) =>
{
m_activeWebView.LoadURL(URLString.FileURLWithPath(PDF_VIEWER_PATH+ "file://" + copiedFilePath));
//If you want to directly load file from streaming assets instead of copying to persistent path
//m_activeWebView.LoadURL(URLString.FileURLWithPath(PDF_VIEWER_PATH+ "file://android_asset/" + "sample.pdf"));
}));
}
private IEnumerator CopyToPersistentPath(string sourceFolder, string fileName, Action<string> onComplete)
{
string sourcePath = Path.Combine(sourceFolder, fileName);
string destinationPath = Path.Combine(Application.persistentDataPath, fileName);
using (UnityWebRequest request = UnityWebRequest.Get(sourcePath))
{
yield return request.SendWebRequest();
if (request.result != UnityWebRequest.Result.Success)
{
Debug.LogError("Error loading file: " + request.error);
onComplete?.Invoke(null);
yield break;
}
try
{
File.WriteAllBytes(destinationPath, request.downloadHandler.data);
Debug.Log("File copied to: " + destinationPath);
onComplete?.Invoke(destinationPath);
}
catch (IOException e)
{
Debug.LogError("Failed to write file: " + e.Message);
}
}
}