Introduction
- Nikon Snapbridge App Doesn't Work
- Lync App Doesn't Work For Firefox Mac Download
- Health App Doesn't Work
- Direct Tv App Doesn't Work
- Spectrum App Doesn't Work
- My News App Doesn't Work
For Firefox, there is a Microsoft Lync 2010 Meeting Join plugin which pulls off this detection. If neither method succeeds, the user is directed to the Lync Web App login form. Joining through either method usually works great, but the caveat is that this only works when the user's primary browser is Internet Explorer. I'm sure Lync client for Mac will receive an update to work around the change in Yosemite, but until then, this is the only fix I've been able to arrive at. I hope this helps the few of you whom my workaround isn't working for. Suddenly, one day, you clicked on a meeting link and today it doesn't launch your Lync client for you. It does open up your browser but the browser now takes you to the Lync Web App page instead. It does not launch your Lync client.
If you’re a regular user of both SharePoint and Lync, you’ve probably seen that SharePoint integrates with Lync by showing users’ presence on the page, and giving you a nice hover dialog allowing you to collaborate with them. But did you know that you can add the same capabilities to your own intranet sites? And did you know it can work on Firefox and Chrome as well as in Internet Explorer? Even if you knew it was possible, chances are you haven’t found it easy, since the documentation is frankly pretty awful.
Now before I go any further, yes this approach relies on plug-ins, and yes we all know that isn’t the way of the future. Very soon it will become much easier to integrate Lync presence into web apps using the new Unified Communications Web API (UCWA) which will ship as an update to Lync Server 2013. However even with that coming, there is still value in client-side plug-ins, and the integration with the Lync client you get with the plug-in approach does provide a very nice experience.
You can download a working sample showing everything I discuss in the post here. Important: I’ve made this available as a downloadable HTML file instead of hosting it on a web server as it won’t work in the Internet zone anyway. However after downloading you’ll need to right-click the file, choose Properties and Unblock before your browser will launch the plug-ins and scripts.
It’s not the most beautiful web code you’ll come across (nor has it been extensively tested) but I wanted to show all of the key concepts in one file without any unnecessary complexity.
Prerequisites
There are a few things required for this approach to work. If you can’t rely on all of these, make sure you do defensive coding to fall back gracefully when the plug-in isn’t available.
- Your users will need Lync installed and be signed in
- The NameCtrl plug-in must be properly registered. This should happen automatically when Lync is installed.
- Your users will need to be using a supported web browser. I don’t know the official support matrix, but with Lync 2013 installed and the site coded correctly it works with Internet Explorer, Firefox and Chrome on Windows. I don’t know if it works on non-IE browsers with versions prior to Lync 2013 (let me know!).
- Your web site must be in Internet Explorer’s Intranet or Trusted Sites security zone (even if being accessed from a different browser). This may sound like a big restriction, but in practice you’ll probably only want to do this on intranet sites anyway.
Initialising the Plug-In
The NameCtrl plug-in exposes the same API to all browsers, but the way you initialise it is different on different browsers.
On Internet Explorer, you need to create an ActiveX object of the type NameCtrl of the class “Name.NameCtrl”:
On Chrome and Firefox you need an <object> tag to initialise the plug-in:
My demo code (based on a simplified version of what ships with SharePoint 2013) to initialise using the correct approach based on the browser is as follows:
Nikon Snapbridge App Doesn't Work
Subscribing to Presence Updates
Once you’ve initialised your plug-in, you can use it to check the presence for any number of users. Doing this properly takes a few steps:
- Subscribe to the plug-in’s OnStatusChange event
- Call the plug-in’s GetStatus method for each user whose presence you are interested in
- In the OnStatusChange event, update your UI (for example to change the presence icon or colour) based on the reported user’s new presence.
There are a few tricks here which I figured out the hard way:
Lync App Doesn't Work For Firefox Mac Download
- When you call GetStatus the first time, you probably won’t get the user’s actual presence back. Really this method is used to tell the plug-in you want to subscribe to a user. The correct presence value will be returned asynchronously in the OnStatusChange event handler.
- The GetStatus method takes two parameters. The first is the SIP address (typically the same as their email address) of the user you are subscribing to. The documentation says that the second parameter is “a string that identifies the HTML <DIV> tag to update with the correct pawn icon”. I’ve never got this to work, and in any event I prefer to control my own UI rather than have the plug-in decide how it should look. In my tests, you can use any value for this string in Internet Explorer however it won’t work in Chrome or Firefox if you use an empty string (but other random strings worked fine).
- The OnStatusChange event handler gives you three parameters. The docs say (accurately enough): “The first parameter is the sign-in name of the user, the second parameter is the new status, and the third parameter is the same ID that is passed to the GetStatus method.” The presence value returned in the second parameter is numeric; the docs have a partial list but see my code snippet below for some other values that may be returned.
So, with that out of the way, here’s my code to subscribe to users’ presence and update the UI (using CSS classes) when their presence changes:
Showing and Hiding the Lync contact card
One final thing you can do with the plug-in is have it show a Lync contact card for a given user. This is useful as the contact card shows additional information about a user (full name, location, phone number, org chart, etc), and also allows you to interact them using any Lync modality (IM, phone, video, etc).
Showing and hiding the contact card is pretty straightforward: the ShowOOUI method shows it, and the HideOOUI method hides it. You just need to wire it up to an appropriate event (typically onmouseover and onmouseout respectively).
The trick is getting it to display in the right place. Without going into all of the details, here is some code which I’ve found to work pretty well:
Conclusion
Health App Doesn't Work
So there you have it. If your organisation uses Lync, hopefully you’ve noticed how awesome it is. But it’s even awesomer (yes, I know that isn’t a word) if you can launch it exactly when you need it, which is often when using some intranet site or line-of-business application which tells you which people you need to communicate with. Even as we slowly move toward a plug-in-free world, it’s important to keep in mind what’s possible with the technology you already have deployed, and use it to create the best experiences you can.
If you were brave enough to upgrade your Mac to OSX Yosemite (beta) and your Lync for Office 2011 (with Office 365 or Lync on premise) no longer will sign in, the potential fix is listed below.
Primary Symptom: when you attempt to log into Lync, it appears to sign you in just fine, but after briefly displaying your Lync contacts, it immediately signs you out and gives you a generic error message that either the server is unavailable or some unknown error has occured.
Likely Resolution:
- Make sure you have all Mac for Office updates and are running the very latest updates
- Go into Settings (System Preferences), Language & Region
- Change the language from 'English-Primary' (or whatever the language is set to) to 'English-US'
- Reboot
- Go back into Settings (System Preferences), Language & Region
- Change the language back to 'English-Primary'
- Reboot
- Open Lync and you should be able to log in just fine this time