Xamarin Forms WebView control programmatically - web-scraping

I have a website with form authentication.
I had successfully logged in that website and read data from it with WebBrowser Control in Windows.Forms.
Hoewever I need to do the same with Xamarin Forms.
Is it possible to control webview in xamarin forms like WebBrowser in Windows.Forms.
Thanks in advance

I think that Xamarin.Forms WebView do not have a deep object model to automate and achieve the same you do with WebBrowser control in WinForms, though you can do it in a "blind" way (without UI)...
You can trace HTTP trafic with an HTTP monitor to see what happens when a user uses the application:
a. https://www.charlesproxy.com/ (see post: https://stackoverflow.com/a/17685506/2117381)
b. https://www.wireshark.org/
You can automatize interaction between an application client and a web server via a HTTPclient library, simulating how the user would use the mobile application:
One option... https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient?view=netcore-3.1
You can extract information from HTML with: HTMLAgilityPack https://github.com/zzzprojects/html-agility-pack
This library parses HTML, construcs a DOM.. you can use XPath / XSLt...
I hope this helps

Related

How can i create FaceBook and Gmail type web based chat in ASP.Net

How can i create FaceBook and Gmail type web based chat in ASP.Net?
i think its called one to one chat.
i have try with XMPP but need base example code
i already install open fire. can anyone have sample code for this type
Take a look at SignalR is a good option to build a chat application.

Access qt application as web page

I have a qt main-window application from which several dialogs are accessed.
I implemented the server and client versions of the application using tcp/ip using c socket programming.
But now I have been told to make the application accessible to any web browser after username and password have been given using QHttp or any appropriate class.
I'm a beginner and have no idea of implementing this. Could anyone give some tips or examples.
I'm using qt 4.6.2
I'm not sure I understand you. You have a Qt main window which contains some widgets arranged in a GUI. You want those same widgets to be accessible inside a web browser? Then you need to re-create all your GUI code in HTML, CSS and JS.
Your Qt app can use QHttp to listen for incoming client connections. When one of those comes, you reply with a webpage (written in HTML, CSS, JS). When this webpage is received by the user, his browser will display it. When the user interacts with the webpage, you'll probably want to send some data back to the Qt server eventually. You can do this either via form posting or via XMLHttpRequest.
You should know client-side web development is not that simple. Even when you know your languages, there's lots of things to learn about browser compatibility, security, accessiblity, JS app architecture, etc.
You want to make your application into an Http server. Here is an example using Qt to get you started:
http://doc.qt.nokia.com/solutions/4/qtservice/qtservice-example-server.html
As Stefan notes, this means putting your GUI into HTML/CSS/JS and more.

Best practice to develop widget using asp.net on the Server side

Hi
I have a hosted web application written in asp.net and would like to publish widgets for use in remote websites. For that purpose I believe I want to use embedded widgets over IFrame.
I therefore need some client side code to retrieve the widget's HTML from the server.
I'd appreciate assistance in the Client\ Server communication. If you have sample code to call a .NET webservice (or any other way) so that I can start by embedding this code within the widget's client UI.
I would also appreciate recommendations for the client UI library (JQuery, ...)
Thanks a lot !
Some people find JQuery the best choice for this, but if you would rather not have (or don't need) the overhead of all of the JQuery scripts, you can use a ServiceReference in a ScriptManager to call a .Net WebService. See this example for that. There are also examples of loading the HTML from a UserControl via Javascript too if that route would be more fitting for your needs.

ASP.NET: Record Sound From A Web App?

I'm contemplating adding a voice recording to some posts on my site. I'm wondering if there is an ASP.NET library out there that will allow me to:
Press a button to start recording
Record what I'm saying through my comp's built in microphone
Save the file as a .wav or some other popular sound file
As of now, I will be the sole user of this function, but it would still be nice to have in my bag of tricks in case I want to pull it out later for a client.
It is not doable without the help of a plugin. Browsers simply don't support voice recording.
You could choose from:
Make a SilverLight applet.
The flashPlayer can record too.
find a java Applet that can do this.
Make an activeX Plugin (since you have affinity to asp)
use your os provided voice recorder, save the file and upload it. Playback via browser is easy
You solution will involve a flash componet (outside of rendering the markup that invokes the flash component). The ASP.NET stack won't be able to do it. Silverlight doesn't seem able to do it.
Here is how.
Here's the problem: the browser does not allow this level of hardware access by an application. You could however achieve this either through Java, Flash or ActiveX (Yuk! don't do it) should the end user allow the access to occur however there are a number of cavaets. Here's a great thread where like-minded people like yourself are approaching the same challenge:
http://drupal.org/node/69242
If I were cornered to do this I would create a signed Java Applet.
not directly from asp.net since asp.net is server side and you need access to the client side microphone - however the new adobe flash player has the ability to access the mircophone so in theory you could use flash to record then upload to your site.
See ListenUp sdk. I found a bulletin board called english-test.net that is using the sdk to post voices.
You'll need some client-side code to achieve this as regular HTML doesn't support audio input and upload.
The ActiveX control Active Audio Record 2.0 claims to support recording audio and uploading it to an ASP.NET web server. I've never tried it though.

How to interact between Web App and Windows Form Application

I have a problem where a Web Application needs to (after interaction from the user via Javascript)
1) open a Windows Forms Application
2) send a parameter to the app (e.g. an ID)
Correspondingly, the Windows Forms Application should be able to
1) send parameters back to the Web Application (updating the URL is ok)
2) open the Web App in a new brower, if it does not exist
If many browser windows are open it's important that the correct one is updated.
Windows Forms Application is in ASP.NET
Browser is IE6+
The applications are controlled and internal for a specific organisation so it's not a question of launching a custom app.
Question A) Is this possible?
Question B) How do I send parameters to an open Windows Forms Application from a Web App?
Question C) If updating the Web App, how do I make sure the right browser is targeted?
What you're asking for is possible but seems awkward.
Trying to call an application from a web page is not something you could do due to security considerations. You could however make a desktop application which would be associated with a certain type of files and then use content-type on the web page to make sure that your app is called when a URL with this type is opened. It would be similar to the way MS Office handles .doc or .xls documents or the Media Player opens the .mp3 or .wmv files.
The second part (opening a particular web page from your application) is easier.
As you should know the address of your web page create a URL string with the parameters you want and open it in default browser (there are plenty of examples on how to do that, a sample is below).
System.Diagnostics.Process.Start("http://example.com?key=value");
If you want to update the page in the already opened browser or use a browser of your choice (i.e. always IE6 instead of Opera or Chrome) then you'll have to do some homework but it's still quite easy.
PokeIn library connects you desktop application to your web application in real time/per user. Moreover, due to its reverse ajax state management, you could consider both of your applications as one.
Check out
http://msdn.microsoft.com/en-us/library/8c6yea83(VS.85).aspx
Using VBScript in your Web Page you can call an open Windows Forms application and send keys to it.
This only works on IE though and you need to adjust the security settings to allow ActiveX.
Have a look into "registered protocols" (for example here and here). I know Skype does this to make outward phone calls from a web page. But probably some changes will be needed in the win application to intercept the parameters from the url.
I haven't tried this but it should be possible
No I don't think it's possible.
Think of viruses/trojans/spyware. If it were possible to launch an application from a mere HTML page, it would be very easy to install malware.
Browsers are designed to prevent you from doing that.
You could use clickonce to deploy and start the forms app - this should take care of sending the parameter to the app.
While this may not perfectly fit with your application, what about using a web service and the form?
Also, you can pass parameters to ensure IE6, not Firefox opens.
System.Diagnostics.Process.Start("c:\ie6\ie6.exe http://www.example.com/mypage");
Ok, so I actually found a clue to the web -> winform part.
The following code was handed to me from an web application that sends a parameter to a winform app. I assume this solution has some security factors in play (such as allowing running VBScript (and ActiveX?) in the webpage. That's ok for me though.
The code:
<script type="text/vbscript" language="vbscript">
<!--
Function OpenWinformApp(chSocialSecurityNumber)
Dim oWinformAppWebStart
Set oWinformAppWebStart = CreateObject("WinformAppWebStart.CWinformAppWebStart")
oWinformAppWebStart.OpenPersonForm CStr(chSocialSecurityNumber)
End Function
-->
</script>

Resources