feat(DeepLinkingMobilePage): Add dynamic links support.
This commit is contained in:
parent
44a65eb329
commit
53971d0b50
|
@ -1,4 +1,4 @@
|
||||||
/* @flow */
|
// @flow
|
||||||
|
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import React, { Component } from 'react';
|
import React, { Component } from 'react';
|
||||||
|
@ -30,10 +30,8 @@ const _SNS = 'deep-linking-mobile';
|
||||||
* @type {Array<string>}
|
* @type {Array<string>}
|
||||||
*/
|
*/
|
||||||
const _URLS = {
|
const _URLS = {
|
||||||
android: interfaceConfig.MOBILE_DOWNLOAD_LINK_ANDROID
|
android: interfaceConfig.MOBILE_DOWNLOAD_LINK_ANDROID,
|
||||||
|| 'https://play.google.com/store/apps/details?id=org.jitsi.meet',
|
|
||||||
ios: interfaceConfig.MOBILE_DOWNLOAD_LINK_IOS
|
ios: interfaceConfig.MOBILE_DOWNLOAD_LINK_IOS
|
||||||
|| 'https://itunes.apple.com/us/app/jitsi-meet/id1165103905'
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -137,7 +135,7 @@ class DeepLinkingMobilePage extends Component<*, *> {
|
||||||
}
|
}
|
||||||
</p>
|
</p>
|
||||||
<a
|
<a
|
||||||
href = { _URLS[Platform.OS] }
|
href = { this._generateDownloadURL() }
|
||||||
onClick = { this._onDownloadApp } >
|
onClick = { this._onDownloadApp } >
|
||||||
<button className = { downloadButtonClassName }>
|
<button className = { downloadButtonClassName }>
|
||||||
{ t(`${_TNS}.downloadApp`) }
|
{ t(`${_TNS}.downloadApp`) }
|
||||||
|
@ -161,11 +159,44 @@ class DeepLinkingMobilePage extends Component<*, *> {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generates the URL for downloading the app.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @returns {string} - The URL for downloading the app.
|
||||||
|
*/
|
||||||
|
_generateDownloadURL() {
|
||||||
|
const url = _URLS[Platform.OS];
|
||||||
|
|
||||||
|
if (url) {
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
// For information about the properties of
|
||||||
|
// interfaceConfig.MOBILE_DYNAMIC_LINK check:
|
||||||
|
// https://firebase.google.com/docs/dynamic-links/create-manually
|
||||||
|
const {
|
||||||
|
APN = 'org.jitsi.meet',
|
||||||
|
APP_CODE = 'w2atb',
|
||||||
|
IBI = 'com.atlassian.JitsiMeet.ios',
|
||||||
|
ISI = '1165103905'
|
||||||
|
} = interfaceConfig.MOBILE_DYNAMIC_LINK || {};
|
||||||
|
const IUS = interfaceConfig.APP_SCHEME || 'org.jitsi.meet';
|
||||||
|
|
||||||
|
return `https://${APP_CODE}.app.goo.gl/?link=${
|
||||||
|
encodeURIComponent(window.location.href)}&apn=${
|
||||||
|
APN}&ibi=${
|
||||||
|
IBI}&isi=${
|
||||||
|
ISI}&ius=${
|
||||||
|
IUS}&efr=1`;
|
||||||
|
}
|
||||||
|
|
||||||
_onDownloadApp: () => {};
|
_onDownloadApp: () => {};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles download app button clicks.
|
* Handles download app button clicks.
|
||||||
*
|
*
|
||||||
|
* @private
|
||||||
* @returns {void}
|
* @returns {void}
|
||||||
*/
|
*/
|
||||||
_onDownloadApp() {
|
_onDownloadApp() {
|
||||||
|
@ -179,6 +210,7 @@ class DeepLinkingMobilePage extends Component<*, *> {
|
||||||
/**
|
/**
|
||||||
* Handles open app button clicks.
|
* Handles open app button clicks.
|
||||||
*
|
*
|
||||||
|
* @private
|
||||||
* @returns {void}
|
* @returns {void}
|
||||||
*/
|
*/
|
||||||
_onOpenApp() {
|
_onOpenApp() {
|
||||||
|
|
Loading…
Reference in New Issue