Difference between revisions of "Share.share"

From GiderosMobile
 
(6 intermediate revisions by the same user not shown)
Line 4: Line 4:
  
 
=== Description ===
 
=== Description ===
Share a piece of data with an external app. This invokes the platform default sharing dialog, allowing to save, print, send, share, etc.
+
Shares a piece of data with an external app.
 
<syntaxhighlight lang="lua">
 
<syntaxhighlight lang="lua">
Share.share(mimeType,data)
+
(bool) = Share.share(mimeType,data)
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Supported MIME types:
+
This invokes the platform default sharing dialog, allowing to save, print, send, share, etc.
 +
 
 +
Currently supported MIME types:
 
* '''"text/*"'''
 
* '''"text/*"'''
 
* '''"image/png"'''
 
* '''"image/png"'''
Line 18: Line 20:
 
'''data''': (string) the data itself<br/>
 
'''data''': (string) the data itself<br/>
  
=== Example ===
+
=== Return values ===
 +
'''Returns''' (boolean) ''true'' if data can be shared<br/>
 +
 
 +
=== Examples ===
 +
'''Image from file'''
 
<syntaxhighlight lang="lua">
 
<syntaxhighlight lang="lua">
local b = Buffer.new("diploma.jpg")
+
require "Share"
rt:save("|B|diploma.jpg")
+
 
local bdata = b:get()
+
local share = Share.new()
b = nil
+
 
collectgarbage()
+
local img = io.open("gfx/cat.jpg")
print("DIPLOMA:", #bdata)
+
local rimg = img:read("*all")
local ok, share = pcall(function() return require "Share" end)
+
 
if ok then
+
share.share("image/jpeg", rimg) -- MIME type, data
-- Analytics("diploma_share")
+
</syntaxhighlight>
share.share("image/jpeg", bdata)
+
 
end
+
'''Using a Buffer (faster than IO)'''
 +
<syntaxhighlight lang="lua">
 +
local share = require "Share"
 +
 
 +
local tex = Texture.new("gfx/cat.jpg")
 +
local bmp = Bitmap.new(tex)
 +
local rt = RenderTarget.new(tex:getWidth(), tex:getHeight())
 +
rt:draw(bmp)
 +
local buff = Buffer.new("buffer.jpg") -- create a buffer
 +
rt:save("|B|buffer.jpg") -- write to the buffer
 +
 
 +
local bdata = buff:get()
 +
 
 +
share.share("image/jpeg", bdata) -- share buffer data
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
{{Share}}
 
{{Share}}

Latest revision as of 21:22, 20 February 2025

Available since: Gideros 2020.7
Class: Share

Description

Shares a piece of data with an external app.

(bool) = Share.share(mimeType,data)

This invokes the platform default sharing dialog, allowing to save, print, send, share, etc.

Currently supported MIME types:

  • "text/*"
  • "image/png"
  • "image/jpeg"

Parameters

mimeType: (string) the MIME type of the data
data: (string) the data itself

Return values

Returns (boolean) true if data can be shared

Examples

Image from file

require "Share"

local share = Share.new()

local img = io.open("gfx/cat.jpg")
local rimg = img:read("*all")

share.share("image/jpeg", rimg) -- MIME type, data

Using a Buffer (faster than IO)

local share = require "Share"

local tex = Texture.new("gfx/cat.jpg")
local bmp = Bitmap.new(tex)
local rt = RenderTarget.new(tex:getWidth(), tex:getHeight())
rt:draw(bmp)
local buff = Buffer.new("buffer.jpg") -- create a buffer
rt:save("|B|buffer.jpg") -- write to the buffer

local bdata = buff:get()

share.share("image/jpeg", bdata) -- share buffer data