andrew67 / ddr-finder-ng Goto Github PK
View Code? Open in Web Editor NEWNext-generation Web UI for ddr-finder
Home Page: https://ddrfinder.andrew67.com/
License: MIT License
Next-generation Web UI for ddr-finder
Home Page: https://ddrfinder.andrew67.com/
License: MIT License
For the purpose of having sync'd native and web app links, "ng/" is meaningless to the end-user, let's move it all to "app/".
Will require changes to ddr-finder project as well, to set up proper redirects.
As it's a single page app, hitting back in Settings/About pages with the device button will kick you out of the site/app.
Implementing history.pushState
and onpopstate
on Android to call myNavigator.popPage()
could potentially work.
Requirements:
iOS continues to break homescreen webapps, on top of existing issues:
Remove tag and provide communication to users to re-bookmark as a normal bookmark.
A nice-have for the road folks once code-base is stable.
Original issue referred to non-Safari iOS browsers, but since we're sun-setting this support we can remove it entirely.
Breaking changes identified so far:
maps:
URIs in iOS will open the system default maps app (Apple Maps).
Add selector for other map apps (such as Google Maps, see https://developers.google.com/maps/documentation/ios-sdk/urlscheme for scheme).
Hesitating to auto-load "my location", since that causes the browser prompt to come up front and center.
A new user should be pointed towards the button.
https://github.com/Andrew67/ddr-finder-ng/blob/master/src/js/my.js#L346
</p>
closure without opening <p>
for descriptionHTML
Needs diagnosis.
Equally affected on Android.
Bug (Safari): the left-to-right swipe for back in Safari will exit out of the app completely, since we only push history entries on Android. This can be resolved by applying the Android back button workaround to iOS non-standalone.
Enhancement (Standalone): left-to-right back swipe is non-existant. Can look into using the Onsen gesture detector to trigger a back action like in Safari / native apps.
Originally: Fix status bar on iOS 11 issue.
Now: removing support for standalone mode.
Can be noticed by an increasing shadow when hitting the "Reload" button, duplicate pins are being loaded into the GeoJSON layer.
Find and implement adequate counter-measures.
This is either a blocker for issue #3, or gets resolved as a side-effect of implementing it.
Currently, Add-To-Homescreen adds about 12KB (gzipped/minified) to prompt the user only on iOS, since Android handles this.
Should replace with custom code, targeting only the languages we care about, using OnsenUI components and ion icons (for example, ion-ios-upload-outline for the icon).
In Chrome at least, we can use Android Intent URLs: https://developer.chrome.com/multidevice/android/intents
To Launch if installed, install if unavailable.
Test to see if it works in Firefox first, otherwise use ons.platform.isChrome()
.
Two issues with translucent status bar:
Proposed fix:
Currently, there is no ThemeRoller UI for the Onsen UI Material design.
Once available, create color scheme to match native app.
Alternatively, play with stylus to produce a components CSS with our colors.
Preserve user's last map location and zoom for next map init, as otherwise whenever they hit "More Info" or "Navigate" on a platform that quickly kills background tasks (iOS), they will be sent back to initial map screen and not where they were looking just now.
Proposed plan:
Same as Andrew67/DdrFinder#15
Similar to Android app, include Spanish/Japanese translations.
i18next looks like a good library to use for integration.
Should preserve the lat/lng if passed in.
Chrome 61 uses Chrome Custom Tabs for window.open / target="_blank": https://stackoverflow.com/questions/46487112/chrome-61-avoid-pwa-opening-blank-links-in-custom-tab
Unfortunately this is making our geo Intent URIs with Google Maps fallback go right to fallback.
Need to fix so that native apps are launched again.
Although Leaflet provides a wrap() utility method that rewrites lng within the -180, 180 range, which allows the API call to return data, GeoJSON does not apply this, so the data will not display.
The options are:
Currently, a white screen is shown when loading as homescreen webapp.
This will require targeting multiple screen sizes.
192x192 icon and we should be good.
Unfortunately, self-hosted Piwik is too difficult to maintain.
iPhone 12 models introduced brand new screen sizes.
OnsenUI uses the screen size to determine whether a phone is iPhone X or newer, to apply hard-coded padding (as opposed to the new env()
).
Short-term fix: newer OnsenUI release contains iPhone 12 sizes.
Long-term fix: switch to CSS that uses env()
.
As Chrome does not populate navigator.standalone, this is probably telling the extension (which hasn't been updated in a while) to show the message again.
Chrome does have a standalone media query, so we can use that to force display:none on the components.
This is a problem for both platforms:
geo:
URIs.Symptoms: nothing happens.
Proposed solutions:
geo:
URI in an Intent URI, with a fallback pointing to the Google Play Store Google Maps entry (how native app handles it).setTimeout
to realize nothing happened, and present a dialog, for example: "The selected navigation app is not installed. Use Apple Maps?" which would retry with maps:
afterward (guaranteed to work, even with app "disabled").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.