Dienstag, 10. Juli 2018

SharePoint redirect an ein Add-In

Aktuelle Frage: Wie erstelle ich in SharePoint einen Link auf ein Add-In?

Klar, im Webseiteninhalt taucht eine nette Kachel auf die den Link beinhaltet. Aber wie erstellt man einen generellen Link z.B. auf einer eigenen Seite?

Die Antwort ist die 'AppRedirect.aspx'. Diese bekommt die ID der add-in instanz übergeben etwa so: 'https://mein.sharepoint.de/_layouts/15/appredirect.aspx?instance_id={A3F2D157-721A-42B9-85F6-B98FBF19D40B}'.

Aber wie kommt man an die ID - wenn man vielleicht nicht gerade auf die ensprechende Inhaltsseite gucken und die ID "abschreiben" kann?

Einfach - die Lösung findet sich im SP.AppCatalog-Objekt:
function redirectToApp(appName){
  var ctx = SP.ClientContext.get_current(),
    web = ctx.get_web(),
    appInstances = SP.AppCatalog.getAppInstances(ctx, web);
  ctx.load(appInstances);

  ctx.executeQueryAsync(function(){
    var apps = appInstances.getEnumerator(),
      app;
    while(apps.moveNext()){
      app = apps.get_current();
      if(app.get_title() === appName){
        break;
      }
    }
    if(!app){
      throw "No app found:"+appName
    }
    var redirectUrl = _spPageContextInfo.webAbsoluteUrl.replace(/\/?$/, '/'+_spPageContextInfo.layoutsUrl) + 
      '/appredirect.aspx?instance_id={' +app.get_id() + '}';
    
    document.location = redirectUrl;
  }, function(){ throw 'Error loading app-instances..'; });
}

Keine Kommentare:

Kommentar veröffentlichen