evothings / evothings-client Goto Github PK
View Code? Open in Web Editor NEWThis repository is no longer maintained.
License: Apache License 2.0
This repository is no longer maintained.
License: Apache License 2.0
Mail from Apple:
"There have been several recent changes that may impact the content rating of your apps. These changes give users more information about your apps and help ensure legal compliance.
New App Content Descriptions
You can now use the following descriptions: Medical/Treatment Information, Gambling and Contests, and Unrestricted Web Access (for apps that permit navigating and viewing web pages, for example with an embedded browser)."
During observation of a first-time user of ETS, it was realized that the fact that the appearance of the icon of Evothings Client in Google Play/App Store doesn't match the rest of Evothings visual style results in confusion regarding whether it is the correct app.
The icon should be replaced with one that is by the user easily associated with the Evothings identity.
Investigate available analytics frameworks and tools that can be used to automatically retrieve usage analytics and crash reports etc. See e.g. http://www.bugsense.com/, but ETC probably needs something tailored for Cordova/hybrid apps.
The class URLProtocolCordovaJs takes over loading of any URL containing any one of three patterns, even if the file being pointed to does not exist locally.
Add code to check if the file exists, and if it does not, allow normal URL loading to proceed.
Problem:
If Evothings Client disconnects from the Workbench it can be difficult to know that the connection is broken. Reload simply stops working and this gives a less good impression and it can be difficult to know what is wrong.
Solution:
Show a message if Evothings Client disconnects from the Workbench
Implementation:
This would be implemented in hyper-reloader.js, not in the client code.
Task is to add support for evothings: URLs inside an Android web vew. It works to lauch the app using an evothings: URL but such links fail that are accessed inside the web view of the app.
Estimated time: 1 day including testing and updating the app on Google Play.
Adding the Cordova StatusBar plugin would enable users to show/hide the status bar, which is very useful for many apps. The StatusBar plugin is now part of the standard Cordova plugins.
When changing the IP address of the Workbench from an IP-address that a physical client device is connected to (e.g. 192.168.1.113) to e.g. 127.0.0.1, at reload the client will exit with an error message. This regards Android devices, the same might apply for iOS devices but needs to be tested.
Steps to reproduce
Actual results
On Android devices An "Application Error" dialogue is displayed with the message "net::ERR_CONNECTION_REFUSED (http://127.0.0.1:4042/index.html)". At the press of its "ok" button the app exits.
Expected results
A user-friendly error message is displayed in the client that is unable to connect to the 127.0.0.1:4042 address. The app doesn't exit at the press of the dialog button, but rather goes back to its start page to allow for making a new connection.
Hi, im trying to isntall with my own projecto of cordova and i get the following error:
/test/platforms/ios/Viewer/Classes/AppDelegate.m:128:34: error: no visible
@interface for 'UIView' declares the selector 'loadRequest:'
[self.viewController.webView loadRequest: request];
~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~
1 error generated.
...
** BUILD FAILED **
The following build commands failed:
CompileC build/Viewer.build/Debug-iphonesimulator/Viewer.build/Objects-normal/i386/AppDelegate.o Viewer/Classes/AppDelegate.m normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
Error: Error code 65 for command: xcodebuild with args: -xcconfig,/Users/beto/Documents/cordova/Qualiametrics/test/platforms/ios/cordova/build-debug.xcconfig,-project,Viewer.xcodeproj,ARCHS=i386,-target,Viewer,-configuration,Debug,-sdk,iphonesimulator,build,VALID_ARCHS=i386,CONFIGURATION_BUILD_DIR=/Users/beto/Documents/cordova/Qualiametrics/test/platforms/ios/build/emulator,SHARED_PRECOMPS_DIR=/Users/beto/Documents/cordova/Qualiametrics/test/platforms/ios/build/sharedpch
I'm getting "deprecated attempt to access property" errors when accessing anything off window.navigator in iOS 8. See https://issues.apache.org/jira/browse/CB-6911.
The issue has been resolved in Cordova 3.7.0 and therefore we should upgrade to that.
There are requests to be able to hide/show the status bar when running apps in Evothings Client.
Here is a plugin for this, official Apache Cordova plugin:
https://github.com/apache/cordova-plugin-statusbar/blob/master/doc/index.md
Report from tester:
Been testing reloading of the examples in iOS 8.0 using ETC 1.0 (from the App Store) and ETS 1.0 RC3 reloading stops working after a few reloads, if having loaded either of, but not exclusively, the following examples:
Multiple reloads and switching between of the following, but not exclusively, works fine:
Reloading seems to not stop working completely but rather become very slow, it can take several minutes before the reload occurs after pressing the run button in the workbench.
Removed all the UI elements from the examples I was reloading (css, graphics, fonts) to rule out any bugs relating to loading of those, but it didn't make any difference.
If using a VPN over e.g. a 3G cellular connection, the scan function should work. Investigate how the client can be made to support scanning, finding and communicating with an EvoThings Workbench server over a VPN connection.
If WiFi is not connected and the user attempts to use the "scan for server"-functionality, alert the user that WiFi should be connected for this function to work.
See also #10
Use e.g. CSS animations to give newly discovered servers a color that fades away during a few seconds.
it is possible that the mobile device (or desktop computer) cannot respond to PING requests - so it is very difficult to detect if a device is connected with client isolation configuration; it would be better to simply change the scan algorithm that after a specific period of time a message is shown to the user letting them know that no server can be found and that they need to check their network configuration.
this is an alternative for the existing evothings-studio issue (#37)
To distinguish between clients in the workbench console, send the device's name from the client. A suggestion is to inject the JS code that performs redirection of error- and console into apps.
A suggestion is to get the device's name through Cordova.
Problem report from tester:
Function readServices is case sensitive for the UUIDs. For example, this does not work:
'713D0000-503E-4C75-BA94-3148F18D941E'
But this works:
'713d0000-503e-4c75-ba94-3148f18d941e'
Analysis and solution:
This is likely because the native side is reporting UUIDs in lower case. Should affect UUIDs also for characteristics and descriptors.
A solution is to lower-case UUID strings in the functions that accept UUIDs.
Connecting to a server found by scan should cause its address to be saved to the manual-input address field, so that, when the client is restarted, the user can connect to the server with one click.
Seen to occur at least in iOS 8.1, the socket.io connection drops after some time (less than 20 minutes), after having loaded an example app (Philips Hue Demo in this case, but it probably doesn't matter which).
The Gallery page integration will be done in a later release. Remove the Gallery menu item before the 1.0 release.
evothings://www.evothings.com/demos
when a user clicks on such a link from an email, tweet et al - using a URL handler we can launch the evothings client and open the page directly, this would be a great way to distribute demos and let other developers use the client directly.
The class Evothings, extending CordovaActivity, takes over loading of any URL containing any one of three patterns, even if the file being pointed to does not exist locally.
Add code to check if the file exists, and if it does not, allow normal URL loading to proceed.
Problem:
When running a Cordova app from a web server (rather from Evothings Workbench) loading of cordova.js and related files does not work.
The cordova.js files are loaded locally from the phone, and the URL resolution/path does not support remote URLs.
Solution:
Update the code for resolving cordova.js file URLs.
Test:
Run this app from Evothings Client on iOS and Android:
http://divineprog.com/evothings/cordova-basic/
Compass, Vibrate, and Native Dialog should work.
Task is to remote plugins that provide file system access and access to sensitive information like contacts.
Report from testers:
When i loaded the sensortag app on my ipad and then modify the app; it doesn't refresh correctly.
some elements disappear (evothings logo on top) or the main text around the elements.. weird; not sure if it is my local network as i've been having issues all day so would like to test this in another environment.
The problem regarding the app not refreshing correctly and elements disappearing has appeared for me too, though only in iOS, for another app that I was developing during the past week. The assets load correctly all the time in a packaged app (e.g. .apk). This has been prevalent in three different Wi-Fi networks.
Problem:
When app reloads or another app is loaded, any ongoing ranging and monitoring is still active. This causes general slowdown and unpredictable behaviour.
Solution:
Implement the onReset method in the plugin on iOS and Android.
Problem: Menu button and back arrow button sometimes hard to trigger with the finger (no response).
Evothings Client version: 1.1.2
Android version: 5.0.2
This issue is caused by an Android bug, whos details can be seen at: https://code.google.com/p/chromium/issues/detail?id=490616
Steps to reproduce:
<input type="color" />
Actual result:
The app exits with the error message "Unfortunately, Evothings has stopped".
Expected result:
A color selection box is shown.
Mail from Apple describing the problem included below.
"Dear developer,
We have discovered one or more issues with your recent delivery for "Evothings Client". Your delivery was successful, but you may wish to correct the following issues in your next delivery:
Missing Push Notification Entitlement - Your app appears to include API used to register with the Apple Push Notification service, but the app signature's entitlements do not include the "aps-environment" entitlement. If your app uses the Apple Push Notification service, make sure your App ID is enabled for Push Notification in the Provisioning Portal, and resubmit after signing your app with a Distribution provisioning profile that includes the "aps-environment" entitlement. See "Provisioning and Development" in the Local and Push Notification Programming Guide for more information. If your app does not use the Apple Push Notification service, no action is required. You may remove the API from future submissions to stop this warning. If you use a third-party framework, you may need to contact the developer for information on removing the API.
If you would like to update your binary for this app, you can reject this binary from the Binary Details page in iTunes Connect. Note that rejecting your binary will remove your app from the review queue and the review process will start over from the beginning when you resubmit your binary.
Regards,
The App Store team"
Task is to update and test the local notification plugin: https://github.com/evothings/cordova-plugin-local-notifications
The API for the plugin has changed, and the online documentation on GitHub differs from the currently shipped version in Evothings Client.
Two steps:
After building with cordova-cli I (at either compilation or execution) got errors about e.g. the BLE plugin not being found or the file name not matching the class name. There might be problems when using other versions of the Java compiler, cordova-cli and/or Android SDK build tools.
Investigate if any problems arise in loading the cordova plugins after building the client using a few different versions and combinations of the Java compiler, cordova-cli and/or Android SDK build tools.
Newly discovered servers should be highlighted according to #12 and servers no longer found should be removed from the list.
The INFO button (now replaced with a menu button) did not layout properly when rotating the device on an LG G2. How the problem was reproduced:
Expected INFO button to be right-aligned.
Task is to test if this problem exists with the new menu button.
Test all examples and the gallery on Android.
Test evothings: URLs.
Problem:
When using Evothings Client as a browser for IoT apps, the cache is not cleared when updating files on the web server. Thus, the new version of the app does not run, but the old one.
This is clearly a problem.
Possible solutions:
Make the WebView not cache anything.
Make a "Clear Cache" button on the Evothings Client start screen.
Add meta tags to the HTML file(s), e.g. like this:
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
Further info on the meta tags:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.