Annotations in QLPreviewController - ios

In offical apps by Apple (for example Mail) is option to make annotations to PDF via this set of buttons:
I would assume that this is some kind of modified QLPreviewController or similar controller. Unfortunately I have not found any documentation about it. Do exist any official way to implement this to own app?
Thanks!

Related

Rich link preview in flutter

Is it possible to make a preview from an url, grabbing all the information such as title, relevant texts and images. Is there any plugins I can use readily?
See this Native android plugin
You can do this way :
1)Create a user at https://www.linkpreview.net
2)Generate an Access Key.
3)From your code call
http://api.linkpreview.net/?key=<Your_API_KEY_From_Step_2>&q=https://www.google.com
It returns the meta tags in JSON as below :
{"title":"Google","description":"Search the world's information, including webpages, images, videos and more. Google has many special features to help you find exactly what you're looking for.","image":"http:\/\/www.google.com\/images\/branding\/googlelogo\/1x\/googlelogo_white_background_color_272x92dp.png","url":"https:\/\/www.google.com\/"}
4) Use it in flutter widget to create a preview.
Hope I'm not late to answer this question, There is a plugin for link with previews Rich link preview
Currently, there is not an open source library for flutter providing these meta tags for a website.
There is a temporal solution, using these freemium APIs for getting this information. The main drawback is that the requests are limited before paying.
I know I'm a bit late but I found a solution for that.
The comment of Sudip might work but if you have a lot of preview to generate, you will have to subscribe and pay..
I couldn't use the library rich_link_preview because of some depency issues (it requires http < 1.12.0).
So I had to do it myself. Writting the complete answer in this comment would be too long so I'll tell you how I did it.
I followed this youtube tutorial. If you are too lazy to watch the entire video you can look at his Github Repo. It worked for me and it is not too long (there are only 2 relevant files):
lib/link_preview.dart
lib/helper/fetch_preview.dart

ios - Control copy and share file with other apps in qlpreviewcontroller or UIDocumentInteractionController

Current implementation.
UIWebView is added to a view and file is loaded in that. Here I can control copy option with "UILongPressGestureRecognizer" and also control whether to allow sharing with other apps using "documentInteractionController presentOpenInMenuFromRect".
Problem
But MS word or Excel password protected files cannot be opened in UIWebView.
Solution
Solution I found to this protected file is open them using "qlpreviewcontroller" or "UIDocumentInteractionController"
But I cant figure out a way to still control thos copy and share with other apps behaviour.
From Apple documentation:
When a document is passed to another application, the contents of the document interaction controller’s annotation property are passed with it.
So, You can subscribe to UIDocumentInteractionController delegate and change annotation of UIDocumentInteractionController to pass additional data to application.
Determination of capability to open is made based on the document type (as indicated by the uti property) and on the document types supported by the installed apps.
If You want to filter list of applications check this question.

How to share a bunch of files at once in iOS

I need to share some data, e.g. two images, to other apps like dropbox or gdrive.
Some recommend using UIActivityViewController but there's no option for mimetypes and other recommend using UIDocumentInteractionController but this seems only be suitable for single files...
Does anybody know about the right way and/or can provide some example in swift?
Edit:
UIActivityViewController seems to be the right way and NSURL.fileURLWithPath(filePath) provides the content.
But what about files stored on a server? Those must be downloaded at some point during share process (e.g. after choosing dropbox). How can I achieve this? I tried with a customized UIActivityItemSource with no luck.
Thanks.
Take a look at the Apple doc for UIPasteboard.
Using UIActivityViewController is the right way.
I had to provide my files wrapped in a subclass of UIActivityItemProvider.
Overriding item()-function for downloading and providing my binary content.

iOS - import file from another app into my app

I want to import a document from another app into my app like it's done in MS Outlook iOS app when you click the paperclip in an email. Then you get a list of apps (dropbox, google drive etc) + recent documents and you can select a document.
How is this done / do I need to use the app-extensions for this ?
thanks
Frank van Vliet
this is the scope of App Extensions. To add an App Extension to your Project you have to navigate to File -> New -> Target and the App Extension you are looking for is called Document Provider. Please first check the WWDC Video on best practice for App Extensions and the App Extension Programming Guide. It will help you to develop the understanding of this Feature.
EDIT:
Maybe I set you on the wrong track, but within the App Extension Programming Guide you could have found the answer to your Question. I'm using Xcode 7.0 Beta 4, but most of the following screenshots should look exactly the same in Xcode 6.*. First of all I started a new SingleView-Application written in Swift and added the Document-Provider Extension as a target to the Project as outlined above.
After building the application with the new Document Provider target I ended up starring confused onto the Share-Menu realising that we talked at cross purposes. The Documentation on this target is slightly muddled but after a while of testing and searching I realised that the thing you are looking for is the Document Picker, not the Document Provider. On this Page you can find the Relevant Chapter: Accessing Documents Link, where you can get examples for the Document Picker.
Since this will hopefully solve your Problem, I would like to shortly refer to the Document Provider and the overvalue it could add to your Application.
The Document Provider extension consists of two separate parts: the Document
Picker View Controller extension and the File Provider extension. The Document Picker View Controller extension provides your document provider’s user interface. The system displays this interface when the host app presents a document picker view controller for your document provider. This interface should let users browse through and select documents and destinations from inside your document provider. This extension can also perform basic import and export operations without any additional support.
from the App Extension Programming Guide as mentioned above
So the Document Provider is kind of an Import Feature as seen from another app. If you would implement a Document Provider Target for your Application, other Apps can access designated data. For example you could attach Files from your App to an E-Mail (left screenshot) or Open a File in Pages (right Screenshot).
When working with Files, this could be a nice feature for your users.
Also I would recommend using either a Share or a Action Extension.
Share extensions give users a convenient way to share content with other entities, such as social sharing websites or upload services. For example, in an app that includes a Share button, users can choose a Share extension that represents a social sharing website and then use it to post a comment or other content.
That doesn't sound exactly like the thing you want to achieve, but at the moment even Apple uses the Share Extension for all kinds of things.
An Action extension helps users view or transform content originating in a host app. For example, an Action extension might help users edit an image in a document that they’re viewing in a text editor. Another type of Action extension might let users view a selected item in a different way, such as viewing an image in a different format or reading text in a different language.
You said you want to import a document from another app into your app. This sounds handy. Lets assume a user opens a Document "loremIpsum.txt" in the iCloudDrive Application and wants to share it to your new app.
Now, you have to write the code to handle imported files when opened by the Document Picker, you could reuse this code to easily add a Action Extension to the Share-/Action-Menu. I hope this will help you and solves more than one problem.
Best regards
cr0ss

Online Addon Builder - How to display custom icon for the extension inside Firefox's Addon Manager

Online Addon Builder - How to display custom icon for the extension inside Firefox's Addon Manager?
I know that's a more general question and before I can even submit this someone is going to throw a link at me but I've been there trust me...
I've built my addon using the online addon builder but I'm not ready to submit it to AMO for review quite yet as I feel it needs more to be complete. I can't find specific information relevant to exactly what I want to do using to online addon builder. I've installed and configured the localized SDK that is utilized using a tool called cfx and of course theres tons of documentation!
The Question: What all notable values can be set using the package.json that determine how the addon is displayed inside Addon Manager? What notable material/configurations can't be set using package.json and how do I implement them?
I've removed all warning and errors from my code but I'm using a hardcoded path to a image whereas before I was passing it as an arguement within the PageMod object to a content script. Why? I'm not sure but I know one of you know how to configure the extension where I can specify chrome://ez-magnetz/data/icon16.png or somehing similar. Which is better than using a JUID in the path name that can change.
My widget has an icon but how do I specify a primary icon for the extension to be displayed in the AM? (package.json||chrome.manifest)
Using the latter of the two(chrome.manifest) how do I include that inside my addon so that its detected?(For the purpose of an Extension Icon using the online addon builder if possible)
Will someone please provide me with a chrome.manifest template for a basic addon?
Do I need the install.rdf and what has precedence over configuration is it like:
install.rdf>>>chrome.manifest>>>package.json
I noticed very similar settings amongst them.
I've been to XUL school I see that there is useful information it just seems outdated in the context of my addon.
I've read the basic info on the package.json and implemented simple prefs and of course the addon's description.
My understanding is that I've created a bootstrapped addon using
Mozilla's Online Addon Builder. Is that correct? The only thing I
wish to do now is to have a personal icon displayed for my extension
in the Addon Manager!
+ I'd like to know how I may have and option for users to donate on AMO!
Thanks for any help in advance
To add an icon, just follow these two steps:
upload the icon you want to use to the data directory of your add-on, eg 'data/icon.png'
Add the relative path to the png file as an extra JSON property in the add-on info dialog, for example this:
{
"icon": "data/icon.png"
}
See this screenshot for an example of what it should look like:
https://dl.dropbox.com/u/44296964/Screen%20Shot%202013-01-07%20at%202.15.49%20PM.png
Aside: please only ask one question per post.

Resources