Share Contract in Metro app - windows-8

I am writing a metro app using javascript and HTML that implements the Share Contract. I want the users of my app to post data to Social networking sites like Facebook. I have configured the People app in my system, but i am not getting it(People app option) in the share pane in the charms bar. I am seeing the People app option in other apps that i have downloaded from the store.Any help in this regard would be highly appreciated.
Thanks

People app of Windows 8 Release Preview supports only Share Link.
People App of Windows 8 RTM Supports both Text & Link Sharing.
To Share Text:
request.Data.Properties.Title = "Share Text Example";
//Description is Optional
request.Data.Properties.Description = "A demonstration that shows how to share text.";
request.Data.SetText("Hello World!");
To Share link:
request.Data.Properties.Title = "Share Link Example";
//Description is Optional
request.Data.Properties.Description = "Demonstrates how to add a link (URI) to share.";
request.Data.SetUri(new Uri("http://www.google.com"));

Which apps that show up in the Share list are determined by what types of data you are sharing. Each target app informs Windows 8 what data types it is capable of accepting. Windows will only show those apps that support the data types being shared from the source application. For example, if I only share plain text on a clean install system
request.data.setText("some plain text to share");
I will only see the Mail app show up.
However, if I also share a URI, I will now see both the Mail and the People app show up.
request.data.setText("some plain text to share");
request.data.setUri(new Uri("http://slickthought.net"));
I suspect that whatever set*() calls you are making are not one of the data type's that the People app supports.

Related

How to implement customized unfurling (preview snippets) with Branch.io quick links?

We generate quick links in our iOS app that are supposed to point to specific content within the app. When a quick link is shared via a messaging app that supports preview snippets, we want the snippet to display custom content depending on the parameters passed when our iOS app generates a link.
For example, user wants to share an audio, the app generates a link which is then posted in a messaging app or social media. We want the preview snippet to reflect specific title/subtitle and image related to that audio.
We use a custom domain name for Branch links if that matters.
What is the right way to achieve this?
You can use Link Preview for achieving this functionality. It will enable the link to display content as a preview card in Facebook, Twitter, Pinterest, iMessage, etc. This card can contain a title, description and image (that you append in the link as OG Tags such as $og_title, $og_description, and $og_image_url) .

Issue with sap.m.PDFViewer (1.48) on mobile devices

I am developing a Master-Detail application which should show an embedded PDF in its detail view. The project is based on UI5 version 1.48, so the new PDFViewer control can be used.
In desktop mode, everything works as expected:
But on a mobile screen, PDF is not showing properly:
The data source property binding at the PDFViewer is done by OData path.
<FlexBox id="fbPDFViewer"
direction="Column"
renderType="Div"
class="sapUiSmallMargin">
<PDFViewer id="idPDFViewer"
source="{myModel>/myPDFUrl}"
title=""
busy="true"
showDownloadButton="false"
height="700px"
width="95%"
loaded="onPDFLoaded"
errorMessage="{i18n>notFoundText}"
errorPlaceholderMessage="{i18n>notFoundText}">
</PDFViewer>
</FlexBox>
Even the SAP sample for embedded usage doesn't work on mobile devices.
According to the source code (1.48), the viewer renders its PDF document directly in the app / iframe only when ..:
The source is valid
It's coming from the same domain
It has a valid URI format
UI5 thinks the user is using a desktop computer (Device.system.desktop returns true) or the displayTypeapi, available since 1.58, is set to Embedded.
UI5 detects that the user agent (browser) has a certain type of PDF plugin enabled. Currently, there are no known mobile browsers which support displaying PDF documents directly in the page.
The steps 2 and 3 explain why the PDF is not rendered on a mobile device even if the source is valid. In such cases, I guess the only option is to provide a download option instead of trying to render the PDF forcefully in the mobile app.
You can use nabi.m.PDFViewer from the the nabi.m library. It works cross device, even on iOS (where you typically don't have the adobe PDF plugin). For details see https://github.com/nzamani/ui5-nabi-m
There you will find also how to try it out on localhost. I have also added some detailed instructions for deployment of the library to NW ABAP as well as SAP CP.
You can find live demos at http://ui5lab.io/browser/#/Samples/nabi.m/Sample/nabi.m.PDFViewer.PDFViewer and http://ui5lab.io/browser/#/Samples/nabi.m/Sample/nabi.m.PDFViewer.InPagePDFViewer
Open the two links on your iOS device or any other device to see how it looks like.
On mobile devices (smartphones and tablets), the PDF viewer control renders a toolbar with the title and a download icon, which behaves as a standard device/browser file link. We've made this note in Fiori Design Guidelines 1.48 and we'll add it to the SDK documentation.
(More in openui5 issue 1759 on GitHub)
Thank you for your responses and hints...
Installing an Adobe Acrobat viewer on the mobile devices was not an option here.
Source of the PDF had same domain like app itself and had a valid URI format too
Due to project timeline in meantime I decided to fall back to a solution that SAP provided with it's "Paystub" (Fiori 1.0). Therein they're using a 3rd-Party control for displaying PDF's which unfortunately has an overhead of code and implementations steps but it works (with minor issues only) perfect on desktop devices as well as on mobile devices.
So far, this is workaround solved my requirement.
Thanks.

Is there a known database or a way to retrieve icons of different apps

I am building some software that requires me to display the icons of different apps, and possible save them on a database so I can look it up on demand?
I know you can get the url scheme but is that all you can do with it ? Or is there a way to get the app icons ?
For instance is there a way to get the icon of angry birds via an API call to the IOS system ?
In a non-jailbroken iPhone, you cannot get it from the OS.
You need to query the iTunes service from Apple to get this info ex:
http://itunes.apple.com/lookup?id=284882215
See this SO post for more detail
Get other application icon image in my Application

Is it possible to share HTML content and images at once(same time) using share contract in c#/xaml windows 8 metro app?

i am developing a windows 8 metro app in which i am sharing the HTML content from my windows 8 Metro App.
I want to share the HTML content and images at the same time using the share contract in c#/xaml windows 8 metro app
protected override bool GetShareContent(DataRequest request)
{
bool succeeded = false;
DataPackage requestData = request.Data;
requestData.Properties.Title = TitleInputBox.Text;
requestData.Properties.Description = DescriptionInputBox.Text;
//Sharing Images
List<IStorageItem> imageItems = new List<IStorageItem>();
imageItems.Add(this.imageFile);
imageItems.Add(this.imageFile);
imageItems.Add(this.imageFile);
requestData.SetStorageItems(imageItems);
//Sharing HTML Content
requestData.Properties.Title = "A web snippet for you";
requestData.Properties.Description = "HTML selection from a WebView control";
requestData.SetHtmlFormat(HtmlFormatHelper.CreateHtmlFormat("<h1>This
is test</h1><br></br>checking it"));
return succeeded;
}
Here in the above code , if i want to trying to share html content and images at the same time.
but , by default it is taking only the first one (either images or html content which will be placed first) it is not able to share both at the same time.
i am able to share either images or html content at a time but not both ???
1) How can i share Html content and Images at the same time using share contract in windows 8 metro app ??
2)what are the various available ways in which i can share both at same time ??
Looking forward for your response
please let me know
The way sharing in Windows 8 works is that you should populate the DataPackage with all the different sorts of data that make sense for your application and what's available to you (in this case Html and Storage Items).
Windows 8 then displays to the user any application that as registered to receive for at least one of the types of data in the package. So it may be the apps shown are registering for one of the data types you'e sharing but not the other.
Also it's completely up the receiving app what to do if it receives multiple types it support. Sometimes it makes sense for the app to use both, other times it may have some sort of priority stack for it's data.
Overall you're doing all you can in sending both forms of data but in the end it's completely up to the receiving app what it does with that data.

Implementing "Rate application" functionality on a Windows Store app

I am trying to implement rating functionality in a Windows Store application using HTML / Javascript.
I am showing a popup dialog similar to the one below within the application and when "Rate" is clicked I would like to redirect to the Marketplace where the user can then rate the application.
This is a task that can easily be done on Windows Phone 7 via the MarketplaceReviewTask.
Is there an API on Windows 8 that I could call to have this achieved?
The Rate and Review link in the Settings charm will automatically appear for users other than yourself (since you can't rate your own app).
If you want a custom link somewhere, you can use LaunchUriAsync like Jim says, using this URI:
"ms-windows-store:REVIEW?PFN=[my-pfm]"
where my-pfm is "Package Family Name" which you will find in your application manifest.
Here's a blog post I found that's helpful:
http://www.andybeaulieu.com/Default.aspx?tabid=67&EntryID=227
If you use protocol activation (LaunchUriAsync) with the URI format suggested here you'll get to your app's page on the Store; however, there's still an additional step for the user to click Write a Review. There may be a way to deep link to it and I'll update if I find out.