Custom menu item in IBM Connections mobile app - ios

In the mobile app on IOS we would like to have an custom menu item that links to a specific wikipage.
In mobile-config.xml we have added
<Application enabled="true" name="testwiki">
<ApplicationIcon>
<Android>
<Hdpi>/icec/hdpi/home_icec.png</Hdpi>
<Mdpi>/icec/mdpi/home_icec.png</Mdpi>
<Ldpi>/icec/xdpi/home_icec.png</Ldpi>
</Android>
<IOS>
<Reg>/icec/IOS/home_icec_normal.png</Reg>
<Retina>/icec/IOS/home_icec_normal#2x.png</Retina>
</IOS>
<BB>
<HighDensity>/icec/hdpi/home_icec.png</HighDensity>
<MedDensity>/icec/mdpi/home_icec.png</MedDensity>
<LowDensity>/icec/ldpi/home_icec.png</LowDensity>
</BB>
<DefaultLocation>/icec/hdpi/home_icec.png</DefaultLocation>
</ApplicationIcon>
<ApplicationLabel>Testwiki</ApplicationLabel>
<ApplicationURL>ibmscp://com.ibm.connections/wikis?action=ShowWikiPage&wiki=d62163a7-3ee4-4b34-a824-7e6d8d2ddc62&page=startpage</ApplicationURL>
</Application>
Then we commit, synk the nodes etc and restart the mobile app.
After that the mobile app shows "Could not connect"(I think because it is in my native language).
If we instead set
<ApplicationURL>https://connections.connectionsurl.com/wikis/home?lang=sv-se#!/wiki/testwiki/page/startpage</ApplicationURL>
it works on the android application but not on the IOS. When using this method we got the following in the loggs:
[8/16/18 16:18:47:312 CEST] 000001fc Context E com.ibm.ws.security.spnego.Context begin CWSPN0011E: A non-valid SPNEGO token has been encountered while authenticating a HttpServletRequest: 0000: a1143012 a0030a01 01a10b06 092a8648 ..0. .... .... .*.H
0010: 82f71201 0202
So should we use ibmscp protocol or it is just for deeplinking into the connections app, the documentation is slightly confusing regarding this?
Or should we use the second method and try to find out why it does not work in the ios?
Help would be really really appreciated since we are a bit lost at the moment...

Related

Emotional TTS with Amazon Polly's SSML tags

Polly allows the use of SSML tags which is great, but I cannot seem to find a tag that would add some kinds emotion. Let's refer to this as Emotional TTS. For instance, the following snippet:
<speak> Hi! My name is Joshua. </speak>
<speak> Hoi! Mijn naam is Lotte. <break time="3s" /> Ik lees elke tekst voor die je hier invoert. </speak>
Is it possible to do Emotional TTS with Polly; e.g. "aaaws" and "aaahs" with Polly? I guess if it were, it would have to be via SSML. Right? How would I modify the above to facilitate such a thing?
If you are using Alexa, depending on language, you might be able to achieve some of this with speechcons:
<speak>
Not quite "aah", but almost:
<say-as interpret-as="interjection">argh</say-as>.
</speak>
See the supported list of speechcons and more details on:
https://developer.amazon.com/en-GB/docs/alexa/custom-skills/speechcon-reference-interjections-english-us.html
Unfortunately, Amazon Polly does not support interjections as of August 2021. You can try it interactively in the browser with the code above, which gives me:
The input you provided isn't valid. Check the input, and then try again.

https://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ("ARSARS")&env=store://datatables.org/alltableswithkeys

I have been using the following URL for the past 3 years without issue. However, it has stopped returning results.
URL:
https://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ("ARSARS")&env=store://datatables.org/alltableswithkeys
Now returns the following:
<?xml version="1.0" encoding="UTF-8"?>
<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:count="0" yahoo:created="2017-11-02T09:33:25Z" yahoo:lang="en-AU">
<results/>
</query><!-- total: 9 -->
Notice how there are no results, it simply has the tag "results".
I have tried on this many different computers and browsers. I have also tried changing the currency combinations, but no luck.
Can anybody spot what I am doing wrong?
Yes, it looks like Yahoo has discontinued their Currency Converter API service.
I found a different site : https://currencylayer.com/
They let you request currency rates (1 USD = 168 other currencies). If you make less than 1000 requests per month, it is free (if you need more, they have different subscriptions : https://currencylayer.com/product).
You just need to sign up and receive your own Access Code. Once you have that, then you simply make the call http://apilayer.net/api/live?access_key= and it will return JSON of the other currency rates.
They also have code examples in PHP, JavaScript, and Java at https://currencylayer.com/documentation
Found it very easy to get started using their API right away.
I think the API is down.
I am similarly receiving "results"=nullfor the query:
http://query.yahooapis.com/v1/public/yql?q=select+%2A+from+yahoo.finance.xchange+where+pair+in+%28%22GBPEUR%22%29&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys
Setting diagnostics=true in the request yields:
`
[execution-start-time] => 7
[execution-stop-time] => 12
[execution-time] => 5
[http-status-code] => 999
[http-status-message] => Request denied
[content] => http://download.finance.yahoo.com/d/quotes.csv?s=GBPEUR=X&f=snl1d1t1ab
`
If anyone knows more than me about what this might imply I'd be glad to hear it!
Yahoo is aware of this issue and their engineers are working on it:
ref: https://forums.yahoo.net/t5/Yahoo-Finance-help/http-download-finance-yahoo-com-d-quotes-csv-s-GOOG-amp-f/td-p/387096
Very sadly and quite outrageously Yahoo decided to stop this service without any warning.
See admin message here
So many services depend on it, it's like Google saying they would suddenly stop their maps API... At this point I am blocking yahoo in our DNS so no one in our company will ever use Yahoo again since they are not a reliable entity.

Options page not showing

I'm writing a new add-on as a Web Extension. In my package.manifest, I have the options_ui set:
"options_ui": {
"page": "options.html"
}
But in about:addons, the options button is not present.
So I tried to call the page directly from my background script:
runtime.openOptionsPage();
But I get this error:
Message: ReferenceError: runtime is not defined
Same error type with:
chrome.runtime.openOptionsPage();
Message: ReferenceError: chrome is not defined
I'm probably missing something very obvious there. I tested with Firefox ESR 45.0.4 and the latest Firefox Dev edition (51.0a2). How can I get the options page to show in about:addons and how can I call it from my background script?
It's browser.runtime.blah or chrome.runtime.blah.
I'm not sure if ESR 45 supports it.
This code should go in you background script right?
Please post more of your code so i can update my answer.
It turns out that I was mixing Web extensions with Add-on SDK

Cordova: clean way to check if user has enabled push notifications

Seems like there is probably an existing cordova solution for this, but I can't find it other than the cordovaBadge plugin
- https://github.com/katzer/cordova-plugin-badge
- http://ngcordova.com/docs/plugins/badge/
Problem is I have had to remove this plugin due to conflicts with LocalNotifications. (Seems like I can't have them both)
The cordovaBadge has a simple .hasPermission() method. Is there anything else in the cordova library that can do this?
You could use the isRemoteNotificationsEnabled() method of cordova-diagnostic-plugin:
cordova.plugins.diagnostic.isRemoteNotificationsEnabled(function(isEnabled){
console.log("Push notifications are " + (isEnabled ? "enabled" : "disabled"));
}, function(error){
console.error("An error occurred: "+error);
});
Dear #vargen_ you're right!
I'm using this plugin together 'phonegap-plugin-push' - just to catch some new feature that exposed by #md repo (see push actions...).
Diagnostic plugin doesn't allow to know if permission was request or not ( like the 'not_determined' response of 'cordova.plugins.diagnostic.getRemoteNotificationsAuthorizationStatus' method available ONLY for iOS).
Strangely, when the app is installed for the first time (Android), permission for push is set to 'true' ( even if no one modal was shown ) -- tested onto android 8.1.0 .
Instead, if we use the 'RECEIVE_WAP_PUSH' value of cordova.plugins.diagnostic.permissionStatus object, like in the example provided here https://www.npmjs.com/package/cordova.plugins.diagnostic#requestruntimepermission permission seems to be always 'DENIED_ALWAYS'.
I'm very confused about how to manage the 'first' time case for this plugin for Android platforms.

How do I install an ASP.NET MVC 3 application on IIS 6 using WIX?

Here's some considerations when installing onto IIS-6:
Needs to register ASP.NET 4 (likely using aspnet_regiis.exe)
Needs to allow for both ASP.NET v2 and v4
Needs to register aspnet_isapi.dll with support for wildcard mapping
And here's what I have so far:
<iis:WebDirProperties Id='WebDirProperties' Script='yes' Read='yes
Execute='no' WindowsAuthentication='yes' AnonymousAccess='no'
AuthenticationProviders='NTLM,Negotiate' />
<!-- SO has some good posts on selecting the website from a dropdown -->
<iis:WebSite Id='SelectedWebSite' Directory='WWWROOT' SiteId='[WEBSITE_ID]' Description='[WEBSITE_DESCRIPTION]'>
<iis:WebAddress Id='AllUnassigned' Port='80' IP='*'/>
</iis:WebSite>
<Component Id="ProjWebApp" Guid="{B4BE9223-7109-4943-AE4E-8F72FA350D02}"
Win64="$(var.IsWin64)" NeverOverwrite="yes" Transitive="yes">
<CreateFolder/>
<iis:WebAppPool Id="ProjAppPool" Name="[APPPOOLNAME]" Identity="networkService"
ManagedRuntimeVersion="v4.0" ManagedPipelineMode="integrated" />
<iis:WebVirtualDir Id="ProjVDir" DirProperties="WebDirProperties"
Alias="[WEBAPPNAME]" Directory="WEBFILESDIR" WebSite="SelectedWebSite">
<iis:WebApplication Id="ProjApp" Name="[WEBAPPNAME]" WebAppPool="ProjAppPool">
<iis:WebApplicationExtension
CheckPath="no"
Script="yes"
Executable="[ASPNETISAPIDLL]"
Verbs="GET,HEAD,POST"
/>
</iis:WebApplication>
</iis:WebVirtualDir>
</Component>
<!-- other apps may start using it once installed so it must be permanent -->
<Component Id="EnableASPNet4Extension" Permanent="yes" Guid="{C8CDAB96-5DDC-4B4C-AD7E-CD09B59F7813}">
<iis:WebServiceExtension Id="ASPNet4Extension" Group="ASP.NET v4.0.30319"
Allow="yes" File="[ASPNETISAPIDLL]" Description="ASP.NET v4.0.30319"
UIDeletable="no"
/>
</Component>
And I have a custom action to register ASP.NET with IIS:
<?if $(var.Platform) = x64 ?>
<CustomAction Id="SetProperty_AspNetRegIIS_InstallNet40Cmd"
Property="AspNetRegIIS_InstallNet40Cmd"
Value=""[NETFRAMEWORK40FULLINSTALLROOTDIR64]aspnet_regiis.exe" -ir"/>
<?else?>
<CustomAction Id="SetProperty_AspNetRegIIS_InstallNet40Cmd"
Property="AspNetRegIIS_InstallNet40Cmd"
Value=""[NETFRAMEWORK40FULLINSTALLROOTDIR]aspnet_regiis.exe" -ir"/>
<?endif?>
The Problem
This almost works. There are two problems at this point:
The IIS extension doesn't respect the managed runtime version on IIS-6, so the application doesn't have an ASP.NET version set.
If I use aspnet_regiis.exe -s APP_PATH to register it once it's created, it overwrites the wildcard mapping (and I don't know a commandline that I can run to restore it).
Given the above shortcomings, how can I use WIX to install an ASP.NET MVC 3 application onto IIS-6 with a proper wildcard mapping when it already has ASP.NET 2 installed?
It turns out this was a dumb error on my part. The above is sufficient to make ASP.NET v4 applications work when the pieces that I didn't include (custom actions and property definitions) are correct.
In my case, I had accidentally quoted the path to the aspnet_isapi.dll, so it wasn't actually being picked up correctly.
The IIS extension doesn't respect the managed runtime version on IIS-6, so the application doesn't have an ASP.NET version set.
That's partially true. Although it doesn't use the managed runtime version when setting the App Pool, IIS actually picks up the ASP.NET version as soon as something is correctly mapped to the aspnet_isapi.dll. As soon as I fixed the path, everything worked correctly.
If I use aspnet_regiis.exe -s APP_PATH to register it once it's created, it overwrites the wildcard mapping (and I don't know a commandline that I can run to restore it).
You can use adsutil.vbs in order to manage this if need be:
C:\Inetpub\AdminScripts>adsutil.vbs enum w3svc/998577302/root/AppName
KeyType : (STRING) "IIsWebVirtualDir"
...
ScriptMaps : (LIST) (1 Items)
"*,C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll,1,GET,HEAD
,POST"
By using the set command in adsutil.vbs you can set the ScriptMaps property as needed.

Resources