Android Question Android 30 Storage Permision

khwarizmi

Active Member
Licensed User
Longtime User
Hi all

I tried to run an local web page across the webview in an Android 30 device, this did not work because access is not allowed (this appeared in the webview itself)

B4X: Copy
webView.LoadUrl("file://" & File.Combine(File.DirInternal, "/data/web/myWebPage.html"))

I added storage permission to the manifest:
B4X: Copy
AddManifestText(
<uses-permission
  android:name="android.permission.WRITE_EXTERNAL_STORAGE"
  android:maxSdkVersion="19" />
)

I also tried to use RuntimePermissions:

B4X: Copy
Dim rp As RuntimePermissions
rp.CheckAndRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)

NOTE: All files such as images and text files can be run, the problem only on the web page.

Thanks.
 
I will recommend you the simplest solution. Download the UltimateWebView Custom View library from the link below.
Remove the WebView object from your Activity and add UltimateWebView via the designer (AddView-CustomView-UltimateWebView). Then add a line to Activity_Create:
Code: Copy
UltimateWebView1.Settings.AllowFileAccess=True 'This property is set to FALSE by default in SDK30. On SDK29 and below is set to TRUE by default.
Then add the following line in the part of the code where you want to open the HTML file:
Code: Copy
UltimateWebView1.LoadFileFromDirInternal("data/web/myWebPage.html")
The library will do the complete work for you.
One more thing, PERMISSION_WRITE_EXTERNAL_STORAGE has no effect on SDK29 and SDK30. Leave it only if you want to use the application on devices below SDK29.
 
Upvote 0
Back
Top