Page MenuHomePhabricator

Exclude special pages from deep links
Closed, ResolvedPublic

Description

Currently users have to choose to open all pages from the *.wikipedia.org domains in app or in browser on iOS. This means that some special pages not available in the app result in an error message, and the user has to go back (best case) or delete the app (worst case).

We already have tickets in to allow users to explicitly choose to use deeplinks or not (if the OS can support it). However, this would still be valid in that case, so that the user has even more fine grained choice between app and web when they need it (as in Special and Flow based pages).

See community question/comment/request here:
https://www.wikidata.org/wiki/Wikidata:Project_chat?markasread=83851739#ArticlePlaceholder_is_now_live_on_Welsh_and_Kannada_Wikipedia

Event Timeline

Another example:

Example:

When you add an email address to a Wikipedia account you are sent an email which contains a link for confirming that the account is really yours.

These emails are formatted as follows:
http://en.wikipedia.org/wiki/Special:ConfirmEmail/...

Presently when you tap these links the app opens and says "Sorry, could not load the article"

JMinor added a subscriber: Fjalapeno.

We should attempt to exclude Special pages via a regex in our site association file.

cc @Fjalapeno since this would involve a web change

@JMinor @JoeWalsh Any reason not to just use an internal web view?

Seems like if they want to be in the app, then the best use solution would be to handle it in app (we already do this in the app, if we tap on a link that is not wikipedia.org). This should be a quick 5 minute change

Additionally doing this server side does not prevent users from tapping a link within the app and opening a special page.

So this will need to be updated anyways.

Sending to Hiking boot for implementation in app after talking with @JMinor

Fixes T178285 ([BUG] Clicking on coordinates in infobox gives an error message) too.

Testing criteria:

Case 1:

  1. Open the app
  2. In "Search Wikipedia" search field, type "Special:"
  3. Tap on the first result, "Special:AbuseFilter"
  4. Make sure the page opens as a separate page within the app and you can tap "Done" to dismiss it
  5. Repeat for other special pages

Case 2:

  1. Open the app
  2. Add French to your languages
  3. In "Search Wikipedia" search field, type "Marseille" and view the article in French
  4. Expand the first infobox, "Plus d'information"
  5. Click on the coordinates ("Coordonnées")
  6. Make sure the page opens as a separate page within the app and you can tap "Done" to dismiss it

Testing on iPhone 6s (iOS 10.3.3) - Wikipedia app 5.8.0 (1264). This is working according to the screencaps below (two for Case 1 and a Case 2) as "Done" is included and the pages are dismissed when it is tapped.