Glad that you have succeeded.

Meanwhile, I’ve done some tests and most importantly finally read the 
documentation (https://doc.qt.io/qt-5.11/qml-qtwebview-webview.html#url-prop), 
so loading documents to WebView through qrc:/ is actually not supported. 
However, it does work on Mac OS :) but I guess we should consider this as an 
accident happy bonus.
The rest of usecases for qrc:/ work equally fine both on Mac OS and iOS (for 
example, setting source for Image).

---
Artem Sidyakin

> On 18 Sep 2018, at 00:02, Sylvain Pointeau <sylvain.point...@gmail.com> wrote:
> 
> Hello Artem,
> 
> it works! your code sample pointed me on the issue.
> 
> You were using "applicationDirPath", I was using 
> QStandardPaths::writableLocation(QStandardPaths::TempLocation)
> 
> I tested applicationDirPath, same as you, it worked. (but this directory is 
> not good because not writable.)
> then I tried  QString dataloc = 
> QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
> (Warning: you must create this directory!
>     QDir datadir(dataloc);
>     datadir.root().mkpath(dataloc);
> )
> and it also worked!!!
> 
> Thank you very much for helping me!!!
> 
> Best regards,
> Sylvain
> 
> On Sun, Sep 16, 2018 at 5:24 PM Artem Sidyakin <artem.sidya...@qt.io> wrote:
> I would understand if local file loading was allowed and remote forbidden, 
> but not the other way around. So if remote works, so should local.
> 
> To confirm that, I simply copied files into the app bundle (Show Package 
> Contents) and just to be sure checked if they are “accessible”:
> 
> foreach(QString filename, QDir(app.applicationDirPath()).entryList()) {
>     qDebug() << “- " << filename;
> }
> 
> And they are, so I have the following files inside the app bundle:
> 
> websockets.app
> ├── _CodeSignature
> ├── bootstrap.min.css
> ├── default-5...@2x.png
> ├── embedded.mobileprovision
> ├── index.html
> ├── Info.plist
> ├── LaunchScreen.nib
> ├── META-INF
> ├── PkgInfo
> ├── qwebchannel.js
> └── websockets
> 
> Then I added applicationDirPath() as QML context property and loaded 
> index.html into WebView like this:
> 
> url: “file:” + applicationDirPath + “/index.html”
> 
> And it works, so it doesn’t matter where the HTML document came from, would 
> it be remote server or local file.
> 
> ---
> Artem Sidyakin
> 
> > On 16 Sep 2018, at 12:58, Sylvain Pointeau <sylvain.point...@gmail.com> 
> > wrote:
> > 
> > 
> > 
> > Le dim. 16 sept. 2018 à 12:22, Artem Sidyakin <artem.sidya...@qt.io> a 
> > écrit :
> > Original question was about “communication between WebView and QML on iOS”, 
> > which does work, as we can see.
> > Now there is an issue of loading HTML documents from file/resource system, 
> > but that’s a different kind of issue, innit (which I also would like to get 
> > to the bottom of).
> > 
> > > you confirm that the webchannel is working if the page is loaded from a 
> > > server
> > 
> > Indeed, but what difference does it make? After the page is downloaded from 
> > the server it is run locally in the WebView on device.
> > 
> > ajax for instance does not work when the file is loaded from the 
> > filesystem. I suppose there is a limitation on the websocket accessing 
> > localhost. I also suppose this can be for security reason?
> > 
> > 
> > Now, when you say
> > 
> > > unfortunately it does not work on the physical ipad
> > 
> > how exactly it does not work? Page is not loaded in the WebView? Or it is 
> > loaded (input field and button), but when you click the button nothing 
> > happens? If it’s the latter, then I would guess that qwebchannel.js is not 
> > loaded properly (wrong path, etc).
> > 
> > When I click on the button, nothing happens, and I suppose that 
> > qwebchannel.js is correctly loaded (it is in the same folder than the 
> > index.html)
> > 
> > 
> > 
> 

_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to