var u:URLRequest=new URLRequest
("mailto:someone@gmail.com?subject=Map Link&body=http://gis.co.wood.wi.us/Flex24/index.html?center="
+ myDegreeFormatter.format(currentCenter.x)
+ ","
+ myDegreeFormatter.format(currentCenter.y)
+ "&"
+ "scale="
+ Math.round(map.scale))
navigateToURL(u,"_self");
var u:URLRequest=new URLRequest
("mailto:someone@gmail.com?subject=Map Link&body=http://gis.co.wood.wi.us/Flex24/index.html?center="
+ myDegreeFormatter.format(currentCenter.x)
+ ","
+ myDegreeFormatter.format(currentCenter.y)
+ "%26"
+ "scale="
+ Math.round(map.scale))
navigateToURL(u,"_self");
<?xml version="1.0" encoding="utf-8"?>
<viewer:BaseWidget xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:viewer="com.esri.viewer.*">
<fx:Script>
<![CDATA[
import com.esri.ags.geometry.MapPoint;
import com.esri.ags.utils.WebMercatorUtil;
import mx.controls.Alert;
private function mailme():void
{
var currentCenter:MapPoint = (map.extent.center) as MapPoint;
var u:URLRequest=new URLRequest
("mailto:someone@gmail.com?subject=Map Link&body=http://gis.co.wood.wi.us/Flex24/index.html?center="
+ myDegreeFormatter.format(currentCenter.x)
+ ","
+ myDegreeFormatter.format(currentCenter.y)
+ "%26"
+ "scale="
+ Math.round(map.scale))
navigateToURL(u,"_self");
}
private function getURLParameters():Object
{
var result:URLVariables = new URLVariables();
try
{
if (ExternalInterface.available)
{
// Use JavaScript to get the search string from the current browser location.
// Use substring() to remove leading '?'.
// See http://livedocs.adobe.com/flex/3/langref/flash/external/ExternalInterface.html
var search:String = ExternalInterface.call("location.search.substring", 1);
if (search && search.length > 0)
{
result.decode(search);
}
}
}
catch (error:Error)
{
Alert.show(error.toString());
}
return result;
}
private function setMapLocation():void
{
var params:Object = getURLParameters();
if (params["ll"])
{
var latlong:Array = String(params.ll).split(",");
if (latlong.length == 2)
{
map.centerAt(new MapPoint(latlong[1], latlong[0]));
}
}
if (params["scale"])
{
map.scale = params.scale;
}
}
]]>
</fx:Script>
<fx:Declarations>
<mx:NumberFormatter id="myDegreeFormatter"
precision="0"
useThousandsSeparator="false"/>
</fx:Declarations>
<viewer:WidgetTemplate id="passURL" widgetTitle="Pass URL" width="200" height="100">
<s:HGroup id="groupURL">
<s:Button click="mailme()"
fontSize="14"
fontWeight="bold"
label="Email Map Link"/>
</s:HGroup>
</viewer:WidgetTemplate>
</viewer:BaseWidget>
http://http://servername/FlexViewer/v23/idea/PAidea/MainProjectv231/index.html?config=config-Basic.xml¢er=-8382590,4857620&scale=9028
<?xml version="1.0" encoding="utf-8"?>
<viewer:BaseWidget xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:viewer="com.esri.viewer.*">
<fx:Script>
<![CDATA[
import com.esri.ags.geometry.MapPoint;
import com.esri.ags.utils.WebMercatorUtil;
import mx.controls.Alert;
[Bindable]
private var EmailComment:String;
// Sends data to email file
// Ref: http://forums.arcgis.com/threads/41459-Create-Email-with-Hyperlink-to-share-map-extent
// Ref: http://stackoverflow.com/questions/6841136/mailto-with-attachments-in-flex-or-air-applications
// Ref: http://zoomquiet.org/res/scrapbook/ZqSKM/data/20100419224556/
private function mailme():void
{
var currentCenter:MapPoint = (map.extent.center) as MapPoint;
var u:String = "";
u+= "mailto:mappers@site.com";
u+= "?";
u+= "subject=";
u+= emailSubject.text;
u+= " ";
u+= "&body=http://url/siteweb/?center="
+ myDegreeFormatter.format(currentCenter.x)
+ ","
+ myDegreeFormatter.format(currentCenter.y)
+ "%26"
+ "scale="
+ Math.round(map.scale)
+ "%0D%0A" + "%0D%0A" //Creates two blank lines
+ emailComment.text;
var url:URLRequest= new URLRequest(u);
navigateToURL(url);
}
private function getURLParameters():Object
{
var result:URLVariables = new URLVariables();
try
{
if (ExternalInterface.available)
{
// Use JavaScript to get the search string from the current browser location.
// Use substring() to remove leading '?'.
// See http://livedocs.adobe.com/flex/3/langref/flash/external/ExternalInterface.html
var search:String = ExternalInterface.call("location.search.substring", 1);
if (search && search.length > 0)
{
result.decode(search);
}
}
}
catch (error:Error)
{
Alert.show(error.toString());
}
return result;
}
private function setMapLocation():void
{
var params:Object = getURLParameters();
if (params["ll"])
{
var latlong:Array = String(params.ll).split(",");
if (latlong.length == 2)
{
map.centerAt(new MapPoint(latlong[1], latlong[0]));
}
}
if (params["scale"])
{
map.scale = params.scale;
}
}
]]>
</fx:Script>
<fx:Declarations>
<mx:NumberFormatter id="myDegreeFormatter"
precision="0"
useThousandsSeparator="false"/>
</fx:Declarations>
<viewer:WidgetTemplate id="passURL" widgetTitle="Pass URL" width="100%" height="100%">
<s:VGroup id="groupURL">
<s:Label
text="Subject: "/>
<s:TextInput id="emailSubject"/>
<s:Label
text="Comment: "/>
<s:TextArea id="emailComment"
maxChars="250"/>
<s:Button click="mailme()"
fontSize="12"
fontWeight="bold"
label="Report Error"/>
</s:VGroup>
</viewer:WidgetTemplate>
</viewer:BaseWidget>
<?xml version="1.0" encoding="utf-8"?>
<viewer:BaseWidget xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:viewer="com.esri.viewer.*">
<fx:Script>
<![CDATA[
import com.esri.ags.geometry.MapPoint;
import com.esri.ags.utils.WebMercatorUtil;
import mx.controls.Alert;
private function mailme():void
{
var currentCenter:MapPoint = (map.extent.center) as MapPoint;
var u:String = "";
u+= "mailto:email@address.com";
u+= "?";
u+= "subject=";
u+= emailSubject.text;
u+= " ";
u+= "&body=http://my_url/index.html?center="
+ myDegreeFormatter.format(currentCenter.x)
+ ","
+ myDegreeFormatter.format(currentCenter.y)
+ "%26"
+ "scale="
+ Math.round(map.scale)
+ "%0D%0A" + "%0D%0A" //Creates two blank lines
+ emailComment.text;
var url:URLRequest= new URLRequest(u);
navigateToURL(url, "_self");
}
private function getURLParameters():Object
{
var result:URLVariables = new URLVariables();
try
{
if (ExternalInterface.available)
{
// Use JavaScript to get the search string from the current browser location.
// Use substring() to remove leading '?'.
// See http://livedocs.adobe.com/flex/3/langref/flash/external/ExternalInterface.html
var search:String = ExternalInterface.call("location.search.substring", 1);
if (search && search.length > 0)
{
result.decode(search);
}
}
}
catch (error:Error)
{
Alert.show(error.toString());
}
return result;
}
private function setMapLocation():void
{
var params:Object = getURLParameters();
if (params["ll"])
{
var latlong:Array = String(params.ll).split(",");
if (latlong.length == 2)
{
map.centerAt(new MapPoint(latlong[1], latlong[0]));
}
}
if (params["scale"])
{
map.scale = params.scale;
}
}
]]>
</fx:Script>
<fx:Declarations>
<mx:NumberFormatter id="myDegreeFormatter"
precision="0"
useThousandsSeparator="false"/>
</fx:Declarations>
<viewer:WidgetTemplate id="passURL" widgetTitle="Pass URL" width="100%" height="100%">
<s:VGroup id="groupURL">
<s:Label
text="Subject ID: "/>
<s:TextInput id="emailSubject" width="300"/>
<s:Label
text="Comment: "/>
<s:TextArea id="emailComment" width="300" height="400"
text ="I have a question."/>
<s:Button click="mailme()"
fontSize="14"
fontWeight="bold"
label="Email Us"/>
</s:VGroup>
</viewer:WidgetTemplate>
</viewer:BaseWidget>
Arthur,
The mailto handling is browser specific and can be altered by the end users preference changes in the browser or a corporations IT restrictions. The user can change how mailto: links behave in chrome by visiting chrome://settings/handlers, or Chrome Settings->Content Settings->Manage Handlers...
Arthur,
I am not a big Chrome fan so I don't know any more than what I Google on the net.