Usage of HTTPRequest APIs for Server side app - dart

Below chunk of code seems to require dart:io.
HttpRequest.getString(uri).then(onDataLoaded);
The App that is being designed requires to make HttpRequests to fetch metadata and build up a HTML page. But when the below is executed, an error related to dart:io of not being availble in Dartium is output on console.
Error as below
The built-in library 'dart:io' is not available on Dartium.
Any suggestions would be helpful.

You haven't provided much code to see what you are actually doing.
In the browser you need to import import 'dart:html'; and use the HttpRequest class from there.

Related

Firefox Restclient plugin import fails

I am trying to use Firefox Restclient plugin to post some REST calls. This already works.
But now I need to execute my requests from another machine.
I wanted to export my requests and import them there but the import keeps failing.
What I already tried:
-firefox57 with latest plugin version - import does not work, no response
-using firefox56 with plugin2.05 - message that import succeeded, but I can not open manage Favourites section and I see the requests nowhere
does anybody know how to solve this?
A certain time after successful import, still you will be not able to see the favourite due to access restrictions, mostly in Linux machine. You can see a pop for access while saving another rest for access, allow it it will fetch all.

flow error for Highcharts

I've added module highcharts in Flow project as it is written over here. Basically the problem is that whenever I use library Highcharts , I have to put into the code import Highcharts from "highcharts"; The results outcome with no errors in FlowJs interface, but with error in browser Unexpected token import( so it doesn't compile js file properly) . Does anyone know the answer for that? I would be appreciated!
Flow in general uses nonstandard syntax for type annotations, etc. In your case, the import is standard ES6 syntax, but it's not yet supported in whatever browser you are using.
Either way, the solution is to use Babel to transpile your code. You can configure it to target older versions of JavaScript and to strip Flow types. There's a bit more info about using it with Flow on the Running Flow code page.

Using dart discoveryapis_generator on webapp?

Can't use my model file generated with the discoveryapis_generator.
It ask for a http.client to be used, but it's from dart:io, and i m trying to use it in a web app
static YoupipeApi api = new YoupipeApi(new http.Client()); //cant work on webapp
Failed to invoke tokenLoaded callback: Unsupported operation: IOClient isn't supported on this platform.
So, discoveryapis_generator is only available for native dart client?
Am i doing something wrong?
(related question here)
The http package also contains a client that runs in the browser. Just change the import to import the file package:http/browser_client.dart; instead.

How do I print from dart chrome app?

I want to print (on printer, not console) from a dart chrome app.
It is possible to print from chrome apps. Here is official sample.
This works properly for javascript apps, however I cannot do similar in dart.
Here's what I tried:
import 'dart:html';
import 'package:chrome/chrome_app.dart' as chrome;
void main() {
chrome.app.window.current().print();
}
Thanks in advance.
Update:
There seems to be no print() method in AppWindow object.
The question is how can I in dart access print() method? I mean the one that is available in javascript in window object. Not in regular dart runtime environment but when code is executed as chrome app written in dart.
Update2:
I posted the answer. The remaining mystery is how to get the DOM Window object from AppWindow object?
The answer seems to easier than I thought...
window.print()
does the job as described in documentation.

The built-in library 'dart:io' is not available on Dartium

I don't know where is the problem. This error show up when I import my SystemCheck class to main Dart file.
SystemCheck class:
import 'dart:io';
class SystemCheck{
getOperatingSystem() => Platform.operatingSystem;
getUser() => Platform.localHostname;
}
Import in main file:
import 'cz.felguide.core/system.dart';
That's correct. You cannot use dart:io in Dartium or code designed for running in the browser. For this simple example much of what you want can be found in the Navigator class such as Navigator.platform
Dart has the same limitations as Javascript in that code that is running in a browser cannot natively access the File System of the running client. There are some exceptions such as the specialized Chrome Packaged Apps which allow certain permissions just within Chrome. Even then they require the app to specifically request the extra permissions and the user to grant them.

Resources