Ionic app: some native plugin dont work on UWP - ionic-framework

I don't know if I ask this in the right place. I Ask it on global furum but didn't get any response.
I have an app that run well on an droid. I want to build it on UWP as well. I have been able to build the app and make it run but some plug-in that use native resource do not work.
For one, native storage,
the second I notice by now is network resource (HTTP request and websocket client).
Those was working well under android. e.i.:
getData(): Observable<AlarmData> {
return this.http.get<AlarmData>(this.server.url() + '/ajax_alarms');
}
I have seen that UWP need some certificate, I found in my app at least one related to network:
<Capabilities>
<Capability Name="internetClient" />
</Capabilities>
But I have not found if and how should I add more...
I tested it on a windows10 machine,
ionic 4.0.6

Take a look on MS own sample:
https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/HttpClient
You have to allow the app to use a resource before you have access.

Related

The browser-default installation prompt for my PWA is not displayed. Why?

I followed all recommended steps for setting up a PWA which can be installed on the user device, following the guideline here: Installable PWAs (MDN):
To make the website installable, it needs the following things in place:
- A web manifest, with the correct fields filled in
- The web site to be served from a secure (HTTPS) domain
- An icon to represent the app on the device
- A service worker registered, to allow the app to work offline (this is required only by Chrome for Android currently)
Still, I don't see the browser-default installation prompt.
How do I find out, why my PWA cannot be installed?
I recommend using Lighthouse, which is an excellent tool for auditing your web app with respect to different categories, including PWA properties. It is also available in Google Chrome in the developer tools (Ctrl-Shift-I / Cmd-Opt-I and select tab Lighthouse).
How do I trigger a PWA audit in Lighthouse (in Google Chrome)?
Choose the category Progressive Web App and then click on Generate report.
Example report
In the example below, you can see that there are some issues present. But the reason, why you don't see the installation prompt is the service worker. Apparently, it isn't registered as expected.
Web app manifest or service worker do not meet the installability requirements

Can we run a Capacitor PWA app offline?

i just created an Ionic project and i added capacitor on it ( with a "npx cap init" ), i set up my service worker ( i just left the <--- ...... ---> in my index.html ). Then i run " ionic serve " from my laptop, and i tried to access it from my mobile phone ( so basically i did a personnal hotspot with my mobile internet, i mean my laptop and mobile phone have the same internet connection ), and it works.
I can access to my ionic app from my mobile whereas it is runt on my laptop, but now i'd like to add/download this app on my mobile phone and use it offline.
Do you know any way i can do that ?
Thanks a lot !
Capacitor works by serving your static assets (like javascript and HTML) from a self-hosted web server, whose behavior is dependent on your capacitor.config.json. This behaviour is most obvious if you look at the source code.
If you have server.url specified in capacitor.config.json, Capacitor's self-hosted server will act as a proxy for the server you point to.
If you do not have server.url specified, Capacitor's self-hosted web server will serve the files that were bundled with your native app.
Based on this, when you are creating the build for your phone, you will need to remove the server url property from your capacitor.config.json. You may also need to generate the capacitor.config.json on the fly in order to separate your development and production needs.
Note that the Ionic Framework and Capacitor have two completely different deployment paths; this answer assumes that you use Capacitor to create your builds.
Of course you can make an app and install it on your phone - that is basic purpose of Capacitor. Docs for android, docs for ios
Steps are similar to this (example for android):
Install Android Studio
At capacitor.config.json define techSupportEmail
npx cap add android
npm run build && npx cap copy android && npx cap open android
Enable developer mode on your phone
Plug your phone in
In Android Studio choose your device and hit "play" button

MoPub GDPR SDK - how to test?

Hi I am setting up the MoPub GDPR Android SDK, am getting a call to the consent dialog page on the web but get this response :
05-16 11:10:46.469 13030-13152/ E/Volley: [18308] BasicNetwork.performRequest: Unexpected response code 400 for https://ads.mopub.com/m/gdpr_consent_dialog
This means "Bad Request" and that the call is corrupt I think. Has anyone got this call to work ?
This isn't an ideal solution, but it works.
On your test device install a VPN service app, there are lots of free ones available out there. If you're running in an emulator (or a device without Google Play) you can goto one of the many APK mirror sites to download and sideload the APK directly.
I won't get into the obvious risks of using VPNs, or sideloading apks outside of google play, but if you're paranoid just spin up an emulator to test this.
It's important the service offers VPN servers located in countries affected by GDPR.
Enable the VPN service on your device/emulator and make sure you're using a server located in a GDPR country (Germany, for example). Load up the app your testing, and it should now appear that you are accessing
Not sure why Pete is suggesting a VPN here. But it appears I was getting this error because I forgot to replace the AD_UNIT_ID in the SdkConfiguration.Builder with my Ad Unit ID.

Call phonegap plugin function within web app

i am building my first phonegap app and when i open the app i instantly redirecting (window.location) the user to my server where my web app is hosted. Is it possible to load the phonegap plugins from there? Because the "deviceready" event is not firing and i cannot call any plugin functions.
I can confirm that loading remotely does appear to allow access to native components (when scripts are properly loaded) and that cordova.jsdoes not appear to need to be loaded by the local index.html bootstrap.
Short answer: Yes
Some 'gotcha's'
You will have to supply correct cordova.js version for the platform browsing to your site.
you can look here for more info https://github.com/apache/cordova-js. This project hosts the core js elements, and builds the platform specific cordova.js lib
Any plugin api's your app wants to interact with must be pre-installed into the Native App
any plugin with native code will have to be added to the project and deployed to device bundled inside the app. There is no way to lazyload native code. The js portions of the plugin could be hosted on your server, however.
More information, some apps that do this
The PhoneGap Developer App uses a similar technique to what is describe above and what you want. The only difference is that it is meant as a dev tool, and the server is a local dev machine.
The Cordova App Harness also uses this technique of pre-bundling an app package with plugins, to be consumed by remotely hosted resources
You cannot, deviceready only functioning if the app run on mobile phone environment only. If web based or dekstop application, it won't trigger.
No , dont do that . loading remote website will not able to intract with your plugins . and the app will get rejected on istore too

sencha touch debug emulator failures

I have a sencha touch example application which works fine on browser (using sencha web start) and iOS and Android simulators (built with phonegap and launched using sencha app build -run native).
I made few changes and was testing in browser alone, unfortunately. When I finally launched the app in simulators, app does not launch. I do not see the main view corresponding screen. It shows a blank screen on app launch. Application works fine in simulator browser as well. App based launch alone fails.
How do I troubleshoot the app failures on simulator? Are there any logs I need to look at? Have no clue.
I have Sencha Touch 2.3.1 and Sencha Cmd v4.0.4.84 on ubuntu OS.
No IDE as of now.
UPDATE
Was able to narrow it down to the store problem. I am trying to launch the First App in sencha docs. Store is making ajax call to googleapis. Not sure if this is causing the problem. I changed this to use local store and app launch worked fine. No idea why app is not able to get the data from googleapis. Simulator browser is able to get the data but just not the app.
As mentioned in the update, app tried to access google api url to get the json data. config.xml in project's root folder prevented access to external domains. As a result app failed to render the view. Fixing it as mentioned in Error: Whitelist rejection in Phonegap to allow required domains worked.
<!--
Define access to external domains.
<access /> - a blank access tag denies access to all external resources.
<access origin="*" /> - a wildcard access tag allows access to all external resource.
Otherwise, you can specify specific domains:
-->
<access origin="http://127.0.0.1*"/> <!-- allow local pages -->
Change <access origin= to <access origin="*"/> to allow all domains or use your specific domains.