GithubHelp home page GithubHelp logo

evothings / evothings-client Goto Github PK

View Code? Open in Web Editor NEW
6.0 6.0 13.0 1.81 MB

This repository is no longer maintained.

License: Apache License 2.0

Shell 0.96% Java 25.00% Objective-C 15.31% HTML 5.97% Ruby 30.69% JavaScript 22.07%

evothings-client's People

Contributors

fredrikeldh avatar psvensson avatar techwizeric avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

evothings-client's Issues

Update AppStore settings

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)."

Make new icon for use in app stores and device's app list.

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.

iOS: URLProtocolCordovaJs: check if file exists

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.

Show message if Evothings Client disconnects from the Workbench

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.

Android: Implement support for evothings: URLs inside the web view

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.

Add Cordova StatusBar plugin

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.

Exit after changing workbench IP address to inaccessible.

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

  1. Start the workbench. The server starts listening on the main network interface's address e.g. 192.168.1.113.
  2. Connect to the workbench with ETC on a client device.
  3. Load an app.
  4. Connect to the Workbench from the machine running the Workbench using address 127.0.0.1:4042 (or localhost:4042). The Workbench server now listens to that address instead.
  5. Reload the app.

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.

error: no visible @interface for 'UIView' declares the selector 'loadRequest:'

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

iOS: Reload stops working

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:

  • Arduino LED On/Off BLE
  • TI SensorTag Sensors
  • Philips Hue Demo

Multiple reloads and switching between of the following, but not exclusively, works fine:

  • Hello World
  • Cordova
  • Arduino Scriptable

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.

inform user of network configuration on scan reporting no workbenches.

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)

evothings/evothings-studio#37

EasyBLE:

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.

Save scan-found address

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.

socket.io connection drops after some time

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).

Remove the Gallery menu item

The Gallery page integration will be done in a later release. Remove the Gallery menu item before the 1.0 release.

Add support for custom URL handler evothings:// across device

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.

Android: getCordovaLocalFileURL: check if file exists

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.

Implement support for loading cordova.js when running from a web server

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.

iOS: Reload does not refresh app UI

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.

Focusing an HTML input field with type="color" causes crash in Android 5.0.2.

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:

  1. Add an input field with type="color" to an app, e.g. the Hello World example app. For example, add the following code:
    <input type="color" />
  2. Load the app in Evothings Client.
  3. Click the new input field to focus it.

Actual result:
The app exits with the error message "Unfortunately, Evothings has stopped".

Expected result:
A color selection box is shown.

iOS: Fix issue with "Missing Push Notification Entitlement"

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"

Test examples using cordova after building with different versions of cordova-cli, Android SDK build tools and/or the Java compiler

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.

Possible orientation layout bug on Android (LG G2)

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:

  • Run Evothings Client on an LG G2 in portrait orientation
  • Rotate device to landscape orientation
  • INFO button is not aligned properly

Expected INFO button to be right-aligned.

Task is to test if this problem exists with the new menu button.

Clearing the WebView cache

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:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.