-
Notifications
You must be signed in to change notification settings - Fork 112
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
Port Loqui to Cordova #944
Comments
The main issue I am seeing is that CoSeMe still doesn't support end-to-end encryption and that's going to be a big problem in the very near future. There is a real risk that CoSeMe will stop working by the time any progress has been made on porting it to Cordova. (And if CoSeMe gains encryption support there is a risk that Facebook won't like the competition on the other platforms where there is an official WhatsApp client). |
yes I'm aware of that. But were still providing a fine XMPP client for Mobile Phones, aren't we? So even if we need to drop WhatsApp support, it could be worth to continue the project? |
The only reason I use Loqui is beause I can use Firefox OS. I don't mess with Android or any other OS. Just my 2 cents. |
@03927e9c do you have any plans which OS you are going to use after Mozilla finally killed FxOS? |
ok, so axolotl support seems to be possible in JavaScript... (as mentioned in #659) |
Yes, the official support for FirefosOS will end soon. But I still like it and am willing to use it as long as possible. If it can be avoided, I will not use Android/Windowes or iOS, ever. |
ill use pidgin |
BTW, I only had to make a few JavaScript changes to get Loqui to run
in Chrome today (well, no TCP sockets so far, so only managed to
configure a XMPP account via a WebSocket connection - but was able to
send and receive XMPP messages).
For Chrome it will need to be packaged as a Chrome App to be able to
access the TCP socket API.
I am not sure if Ubuntu or Tizen provide any raw socket API at all -
and I am not sure how similar the rendering engines of Ubuntu and
Tizen are to Chrome...
|
@cmeerw Ubuntu use the render provided by Qt, if I am not wrong it is Webkit, but don't trust on me. Do you have an email? I would like to talk a few things with you :) |
@Gioyik I believe Qt actually switched to Blink (same as Chrome/Chromium). My email is cmeerw@cmeerw.org |
I have added Chrome as a new target... So far text messages in WhatsApp (with encryption support) seem to work reasonably well. Unfortunately, STARTTLS for XMPP connections is even more broken in Chrome than in Firefox. User interface appears to be mostly fine in Chrome... |
Just added a cordova target to the build, in dist/cordova you can then do
to run the basic application (but as usual, only XMPP via WebSockets works for now). So I guess we will just need a few plugins to access some native facilities (like raw TCP sockets). |
Ok, so I have added some support to fallback to a WebSocket proxy if there is no raw TCP socket support (like on Ubuntu Touch). But this means, that a small WebSocket proxy server is needed - I have made on at http://svn.cmeerw.net/src/nginetd/trunk/ , you just need to build wssrv-tcp and then (on Ubuntu) launch the webapp-container via wssrv-tcp:
This should give you some very basic (but working) WhatsApp on Ubuntu (except that you don't have any contacts, but you can receive messages and respond)... |
How do I build wssrv-tcp? |
|
I just tried. udns.h seems to be missing... |
Can you just install libudns-dev ?
|
Ah, thanks! I thought it's missing in the directory. I'll try to resolve the dependencies... |
Well, I got around with this and when I try to start the app, it closes instantly and via terminal/ssh I get this output: wssrv-tcp -d -b bananapim2:443 -- webapp-container --app-id=loqui.im --user-agent-string="WhatsApp/2.16.10 S40Version/14.26 Device/Nokia302" www/index.html So I know about the trouble launching apps via terminal/ssh on Ubuntu Touch, but what WebSocket server/port should I choose? |
As mentioned in my previous comment `-b 127.0.0.1` should work (which
will use port 8080 - as that's currently hardcoded on the Javascript
side).
|
At my Linux Mint 18 64bit it's working (except the decrypt errors). On my Ubuntu Phone it doesn't. Previously I had problems by getting some libs, which are available since xenial only so I used the serveral files for the vivid based phone. Maybe that's incompatible. |
Hi nfsprovider, I would like to test LoquiIM on Ubuntu Touch, but when you enable read-write mode and just edit the LoquiIM files, will the OTA-Updates still be available? |
The one thing has nothing to do with the other thing so, yes. But be warned working in a writable root filesystem. By the way, after reboot the filesystem is read only again. After OTA-Updates you may do the steps again because some changes will be overwritten or removed during an update. |
Hello @nfsprodriver I followed your steps and managed to get Loqui installed in my Ubuntu phone but I´m facing and issue. When I try to register my mobile phone I get the SMS with the code correctly but it get stuck verifying the mobile phone and code numbers. I managed to run it from the adb shell so I can get the trace log: These are the two messages that look important: I checked this website but no luck. https://github.com/mgp25/Chat-API/wiki/WhatsApp-Registration-Flow qml: JS Request: https://v.whatsapp.net/v2/register?cc=XX&in=XXXXXXXX&code=XX&id=XXXXX ~ at Logger.CoSeMe.namespace.Logger.log (file:///opt/click.ubuntu.com/com.ubuntu.loqui.im.loqui/0.5.9/www/scripts/mozillahispano/coseme.js:3477:10) [http] qml: JS {"status":"fail","reason":"missing"} ~ at Logger.CoSeMe.namespace.Logger.log (file:///opt/click.ubuntu.com/com.ubuntu.loqui.im.loqui/0.5.9/www/scripts/mozillahispano/coseme.js:3477:10) [http] The personal data has been replaced with XXXX @aesedepece ¿me ayudas con esto? |
Have you launched it with the right User Agent? It must be the ...2.16.10... one. |
hi @nfsprodriver thanks for your answer! I take the user agent from whatsapp file. is this correct? |
Hi, Here is a small list of my experiences so far. I've tested a Whatsapp account on Ubuntu Touch and the following things work:
What doesn't work:
Also the other account types like Facebook and Hangouts doesn't work. |
Seems you got more things working than me. Have you done anything different? |
@gabriel-lucas Yes it should be ;) |
No idea why it fails. Neither, opening it from terminal through adb shell or directly from the Loqui icon works. Do you know any way I can debug or search for a solution to this? cheers! |
What I can say now is to use the whatsapp file to launch the app. Be sure you've loaded the wssrv-tcp into the /bin/ directory, made it executable (sudo chmod +x) and installed all necessary dependencies (-> instructions). |
ls -l /bin/wssrv-tcp $sudo apt-get install libudns-dev ls -l /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 ls -l whatsapp cat whatsapp The problem is registering, could it be that the account might be blocked or something similar? |
@nfsprodriver I guess that you haven't found out yet how to open the menu. It's a bit buggy but I can open it by following the next steps:
The menu will slide-in from the left side of the screen. Here you can access your (profile) settings and accounts. |
Great, thanks!!! |
BTW, just swiping right should work.
|
@cmeerw Swiping right doesn't seem to work on Ubuntu Touch ;( |
@cmeerw Can you integrate all dependencies into wssrv-tcp like udnv and libstdc++ to make the installation as easy as possible? |
@nfsprodriver I am surprised that there isn't a system libstdc++ available... Surely anything using Qt must also depend on libstdc++... |
The thing is, I compile it on a Bananapi Ubuntu 16.04 arm with all the dependencies and use the compiled file in Ubuntu Touch, where I need to install libudns-dev and libstdc++. Second one isn't available for arm 15.04, so I use the 16.04 one from the Bananapi. |
Thanks for the Ubuntu touch port, I love it! |
But please do not publish it as something for end users, it's not ready yet as can be seen by #1156 - please work on fixing it first! |
I'm not a developer of this program but I'd like to write something here. First of all I want to thank you all for all your work. I think is a good think to port it to Ubuntu Touch, and i found publish the app in the Open Store a good solution to open the app to developers and enthusiasts even if is a heavy work in progress. |
Some design discussion points I hope to get some feedback from Ubuntu Touch devs: Main problem is that LoquiIM needs some non-standard APIs, with the most important one being opening TCP connections - I think the others are then access to the phone address book and ability to read/write files on the local filesystem (oh, and some way to prevent the CPU from going back to sleep when it shouldn't) Question is what is the best (and easiest) way to make these APIs available on Ubuntu Touch? For the moment I have written a simple WebSocket server that can be started on the device and that translates from a WebSocket connection to a plain TCP connection. One other option could be Cordova, but I am not entirely sure yet how well that really is supported on Ubuntu Touch (it definitely doesn't have a TCP plugin) and I have issues with their plugin API which seems to essentially pass Javascript code as strings around that then gets executed - this seems like a disaster waiting to happen and is probably not ideal for something like TCP sockets or files where significant amounts of data can be transferred. Is there any other way to access native APIs from HTML5 apps? Maybe something that provides a sane plugin interface? (yes, I really dislike Cordova) So what would be the recommended way to solve this? Are there any existing examples of HTML5 web apps on Ubuntu Touch that need some native API access? |
I made some research and Ubuntu Touch seem supports Cordova, but about TCP I haven't found any documentation... |
This https://cordova.apache.org/docs/en/latest/guide/platforms/ubuntu/index.html can help you? |
I am aware that there is some support of Cordova for Ubuntu Touch, but
what level is that support and who is behind it (and is it the best
technical solution)? (after all, LoquiIM is in the Ubuntu Open Store,
but does that mean it's fully working and supported? No.)
|
Hi, |
Hello! Good to hear from your engagement. The first things I would think of are Contact Import, Notifications, Content Hub and the Noise Protocol cmeerw already working on. Maybe we can get rid of the DECRYPT ERRORS before finishing the implementation? |
Any news? |
i cant see my loqui app in market place pliz help mee On 13 November 2016 at 12:56, Emanuele Antonio Faraone <
|
I opened an issue about the tcp socket server for Ubuntu Touch. Everything about that should be discussed there: #1181 . |
Hello Everyone,
Firefox OS is dying and by now it's not clear what's going to happen with it in the future. It might become a community driven project under a new name, but who knows....
So my idea is to continue our project by shifting our main platform to Cordova which will alow us to run our Application on Android and iOS.
There is a plugin to use the chrome.socket.tcp API and we would just need to write a shim to translate it to the TCPSocket API from Mozilla so CoSeMe could use it.
Of course we also need to wrap some other APIs, but the TCP socket would be our main problem.
An other issue we would be facing is that we need to make our CSS work with WebKit and Blink.
I'd be happy about some feedback, anyone interested to continue the project like this?
The text was updated successfully, but these errors were encountered: