Tus comentarios

This will be determined by the UI that you build underneath the keypad. In some instances we have built apps that reposition the xpos and ypos up when the keypad is opened or you could consider wrapping your content in a pager to allow it to scroll up. This is always hard to workaround on iphones because there is not a dismiss keyboard button like there is on the iPad and Android.
It should be a combination of a "/" query and [datasource:parsePost.1.code] similar to this example. If this isn't the case looking at your code might be helpful:


<wire>
<datasources>
<!-- add http header values the service needs here -->
<httpheader name="jsonheader" Accept="text/json"/>
<datasource name="validation" httpheader="jsonheader" source="" query="/" providertype="json" querycomplete="validate" httpmethod="post"/>
</datasources>
<main>
<!-- this text template contains the content you want to send to the service add [var:xxx] for variables etc -->
<texttemplate name="expired-receipt"><![CDATA[ {"format_version":1,"type":"email","email":{"to_email":"TO_ADDRESS","to_name":"TO_NAME","from_email":"FROM_EMAIL","from_name":"FROM_NAME","subject":"EMAIL_SUBJECT","body_html":"BODY_HTML_VERSION","body_text":"BODY_TEXT_VERSION"}}]]></texttemplate>

<panel name="body" height="50%" width="50%" background="#ff0000" valign="center" align="center">
</panel>
</main>
<actions>
<action name="start" oninit="yes">
<sync>
<!-- assign the value of the text template to the postContent property of the datasource to be sent to the server -->
<assign property="datasource:validation.postContent" value="[template:expired-receipt.content]" />
<!-- update the source of the ds to initiate the request -->
<assign property="datasource:validation.source" value="http://studio.rarewire.com/get-apple-subscription-data/D3mwuC8bvBWUXSnq" />
</sync>
</action>
<action name="validate">
<alert message="[datasource:validation.1.status]"/>
<assign property="var:status" value="[datasource:validation.1.status]" />
</action>
</actions>
</wire>
This can be accomplished using a series of assign tags and our evaluations.

Your assign tags will serve to capture the contents of the textfield like so:

<action name="capturefieldvalues">
<assign property="var:textfield1" value="[object:TEXTFIELDALIAS1.text]"/>
<assign property="var:textfield2" value="[object:TEXTFIELDALIAS2.text]"/>
<assign property="var:textfield3" value="[object:TEXTFIELDALIAS3.text]"/>
<assign property="var:textfield4" value="[object:TEXTFIELDALIAS4.text]"/>
</action>


Object properties for the text attribute of your textfields can be assigned as above. Once you have variables stored for these fields then you can use an eval to average them out and display in a 5th total textfield. Evals are simply javascript computations and can perform simple math very easily.


<action name="populateaverage">
<assign property="object:TOTALFIELDALIAS.text" value="[eval:([var:textfield1]+[var:textfield2]+[var:textfield3]+[var:textfield4])/4]" />
</action>
Unfortunately JSON really doesn't have a query engine, there is no easy answer here. You could use javascript to breakdown the content of the JSON string but that might get you exactly where you want.
Yeah if you know or can assign the ID that you want, you can do this:


<assign property="var:node" value="5" />
<sync delay="2">
<alert message="[datasource:field-list.[var:node].name]"/>
</sync>
Without any knowledge of your actual source, I can only speculate. Some APIs allow you to drill down into your datasource URL to return a specific ID, you can replace that value with a variable in which you can then reassign as needed.

Example:

<assign property="var:productId" value="_productId" />
<assign property="datasource:redBox-kiosk-check.source" value="https://api.redbox.com/v3/inventory/stores/[preferences:kioskID]?products=[var:productId]&amp;apiKey=xxxxxxxxxxxxxxxxxxxxxxxxxx" />

You would need to change your file to path to the wire to dive into a folder first:


<wire>
<main>
<panel name="issue1" width="45%" height="100%" xpos="10%" ypos="2%" onclick="launch-issue" _wire="issue1/ISSUE1.wire"></panel>
<include name="issue" alias="ISSUE" width="100%" height="100%" background="#000000" alpha="0"></include>
</main>
<actions>
<action name="launch-issue">
<load file="_wire" target="ISSUE" />
</action>
</actions>
</wire>
Steve,

This issue should be corrected now.
I can confirm that this is a bug. I have logged a ticket.

Luckily you can access the collaborators for inside of a portfolio. To the right of a portfolio name when viewing an App in the studio you will see a "settings" link. From here you can change your portfolio name and see a list of collaborators. Under the collaborators list is a link to "Manage Collaborators"
Android has a native keyboard, but does not support the same kbtypes that iOS does.

Your issue seems to lie in the zorder of your textfield. This prevented the textfield from triggering the keyboard. I updated your wire. This is an Android quirk.