All Projects → crqra → webview

crqra / webview

Licence: MIT license
Build cross platform desktop apps with Elixir and web technologies.

Programming Languages

c
50402 projects - #5 most used programming language
elixir
2628 projects
Makefile
30231 projects

Projects that are alternatives of or similar to webview

btt
Low level MacOS management in JavaScript via BetterTouchTool
Stars: ✭ 92 (+411.11%)
Mutual labels:  webview
HybridCache
a library which can intercept the loading process of webpage resource and cache all the resource files we are interested, just like css files,js files, images files ,html files and so on.So we can share the cache between the web view and our native logic.(这个库可以帮组我们拦截webview加载网页的时候所有的资源请求,并且根据实际的需求策略进行缓存管理。基于此,可以帮助我们实现webview与natvie的逻辑的缓存共存,比如web…
Stars: ✭ 64 (+255.56%)
Mutual labels:  webview
nativescript-webview-interface
Plugin for bi-directional communication between webView and android/ios
Stars: ✭ 87 (+383.33%)
Mutual labels:  webview
exor filter
Erlang nif for xor_filter. 'Faster and Smaller Than Bloom and Cuckoo Filters'.
Stars: ✭ 29 (+61.11%)
Mutual labels:  nif
FlexHybridApp-Android
WebView bridge interface with Promise pattern
Stars: ✭ 20 (+11.11%)
Mutual labels:  webview
UIFramework
A powerful UI framework for the game Onset (https://playonset.com/)
Stars: ✭ 13 (-27.78%)
Mutual labels:  webview
TrendingCustomAlert
You can use a ready-made custom alert controller.
Stars: ✭ 25 (+38.89%)
Mutual labels:  webview
coc-webview
Using an external browser to support the webview in coc.nvim.
Stars: ✭ 21 (+16.67%)
Mutual labels:  webview
Bloop
A light weight scratch pad inspired and derived from https://github.com/IvanMathy/Boop.
Stars: ✭ 54 (+200%)
Mutual labels:  webview
vscode-http-client
Simple way to do HTTP requests in Visual Studio Code.
Stars: ✭ 26 (+44.44%)
Mutual labels:  webview
MediumUnlimited
Android App written with Flutter/Dart to navigate medium.com without limitations.
Stars: ✭ 28 (+55.56%)
Mutual labels:  webview
pdfjs
A sample for showing PDF files in a Xamarin.Forms application with pdf.js
Stars: ✭ 32 (+77.78%)
Mutual labels:  webview
RichEditorView
Android 基于WebView的富文本编辑器 - 仿简书编辑器
Stars: ✭ 77 (+327.78%)
Mutual labels:  webview
WebViewExample
work as a webview testing environment for frontend developers
Stars: ✭ 19 (+5.56%)
Mutual labels:  webview
TeadsSDK-iOS
Teads SDK iOS Sample App - Check out an open-source sample of the Teads iOS SDK implementation
Stars: ✭ 22 (+22.22%)
Mutual labels:  webview
Hybrid-Web-Platform
Full-fledged WebView as Xamarin.Forms plugin with cross-platform C# to JavaScript and JavaScript to C# calls support. Eventually invented for painless hybrid apps creation.
Stars: ✭ 19 (+5.56%)
Mutual labels:  webview
Vanadium
Privacy and security enhanced releases of Chromium for GrapheneOS. Vanadium provides the WebView and standard user-facing browser on GrapheneOS. It depends on hardening in other GrapheneOS repositories and doesn't include patches not relevant to the build targets used on GrapheneOS.
Stars: ✭ 365 (+1927.78%)
Mutual labels:  webview
X5Bridge
Three party libraries of Tencent x5webview and JS interaction
Stars: ✭ 17 (-5.56%)
Mutual labels:  webview
Webview
Android WebView,Js互调
Stars: ✭ 22 (+22.22%)
Mutual labels:  webview
MHWebViewController
An Instagram inspired Web View Controller.
Stars: ✭ 75 (+316.67%)
Mutual labels:  webview

WebView

Installation | Usage | Documentation | License

Build cross platform desktop apps with Elixir and web technologies.

This library provides Elixir bindings for the webview library to allow easy creation of cross platform Elixir desktop apps with GUIs based on web technologies.

The webview library uses Cocoa/WebKit on macOS, gtk-webkit2 on Linux and MSHTML (IE10/11) on Windows, making this a good alternative to Electron.

Check the NIF project to track the implementation progress.

It's recommended to also read the webview readme for a better understanding of how the library works behind the scenes. You'll also find a list of bindings in other languages there.

Disclaimer: this is work in progress (early development) and breaking changes will most probably occur without notice, currently not production-ready.

Installation

WebView can be installed by adding webview to your list of dependencies in mix.exs:

def deps do
  [
    {:webview, github: "und0ck3d/webview"}
  ]
end

Will be published on Hex when 0.1.0 is released.

Usage

Starting WebView

iex> opts = [title: "Hello, WebView!", url: "https://elixir-lang.org"]
iex> WebView.start(opts)

Alternatively you may add WebView to a supervision tree:

webview_config = [title: "Hello, WebView!", url: "https://elixir-lang.org"]

children = [
  {WebView, webview_config}
]

Manipulating WebView

(after having started WebView)

Set the title:

WebView.set_title("Elixir is awesome!")

Set fullscreen:

WebView.set_fullscreen(true) # Turns fullscreen on
WebView.set_fullscreen(false) # Turns fullscreen off

Evaluate JavaScript code:

WebView.eval("console.log('Hi, from Elixir!')")

Injectg CSS styles:

WebView.inject_css("body { background: #000; color: #fff; }")

Currently it isn't possible to update neither the page's URL nor the HTML directly using zserge/webview because the library doesn't have support for it. Those and other additional features will be added to WebView in the future to easily allow different use cases (such as update the HTML directly, implement navigation on back-end, use a web server such as Phoenix, SPAs and more).

For more examples, please check the examples directory.

Documentation

Documentation isn't available online. You can generate it locally with:

$ mix docs

Contributing

Contributions are very welcome, specially improvements to the NIF and the Makefile to support cross platform.

For now, simply fork this repository and make the changes, open an issue and create a pull request. Don't forget to run mix format before committing, please.

License

Both und0ck3d/webview and zserge/webview projects are released under the MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].