The given conditions can be weakened. We can prove the following by mathematical induction.
CLAIM. Let $n\ge1$ and $h:S^n\to S^n\,(\subset\mathbb R^{n+1})$ be a continuous injective function such that
$$
\langle h(x),h(y)\rangle=\langle h(Rx),h(Ry)\rangle\tag{1}
$$
for all $x,y\in S^n$ and for all $R\in SO(n+1,\mathbb R)$. Then $h=q|_{S^n}$ for some linear isometry $q:\mathbb R^{n+1}\to\mathbb R^{n+1}$.
THE BASE CASE $n=1$. Let $e_1=(1,0)^T,\ R(\phi)$ denotes the rotation matrix for an angle $\phi$, and $\angle(x,y)$ denotes the angle between two unit vectors $x$ and $y$, i.e. $\angle(x,y)=\arccos(\langle x,y\rangle)\in[0,\pi]$. By composing $h$ with an appropriate linear isometry on $\mathbb R^2$, we may assume that $h(e_1)=e_1$. By the continuity of $h$, there exists some $\delta\in(0,\frac{\pi}{2})$ such that $\angle\left(h(e_1),\,h(R(\phi)e_1)\right)<\frac{\pi}{2}$ whenever $|\phi|<\delta$.
Let $\theta\in(0,\delta)$ be fixed and let $x_k=R(k\theta)e_1$ for every $k\ge0$. Since $|\theta|<\delta<\frac{\pi}{2}$, the points $x_0,x_1$ and $x_2$ are distinct. By condition $(1)$, $\angle(h(x_0),h(x_1))=\angle(h(x_1),h(x_2))$. The injectiveness of $h$ and our choice of $\delta$ thus imply that $h(x_1)=R(\alpha)h(x_0)$ and $h(x_2)=R(\alpha)h(x_1)$ for some $0<|\alpha|<\frac{\pi}{2}$. If we repeat the same argument for $x_k,x_{k+1},x_{k+2}$ for each $k\ge1$, we get
$$
h\left(R(k\theta)e_1\right)=R(k\alpha)e_1\quad \forall k\ge0.\tag{2}
$$
Likewise, if we put $x_{1/2}=h\left(R(\frac{\theta}{2})x_0\right)$, the inner product condition $(1)$ will give $\langle x_0,x_{1/2}\rangle=\langle x_{1/2},x_1\rangle$. Thus $\angle(x_0,x_{1/2})$ is equal to either $\frac12\angle(x_0,x_1)$ or $\pi+\frac12\angle(x_0,x_1)$, but the latter is impossible because $\frac{\theta}{2}<\delta$. It follows that $x_{1/2}=R(\frac{\alpha}{2})e_1$. So, if we repeat the derivation of $(2)$ but with $\theta$ replaced by $\frac{\theta}{2}$, we get $h\left(R(\frac{k\theta}{2})e_1\right)=R(\frac{k\alpha}{2})e_1$ for each $k\ge0$. Continue in this manner, we obtain $h\left(R(\frac{k\theta}{2^m})e_1\right)=R(\frac{k\alpha}{2^m})e_1$ for all integers $k,m\ge0$. It follows from the continuity of $h$ that $h(R(\phi)e_1)=R(c\phi)e_1$ for every $\phi\ge0$, with $c=\frac{\alpha}{\theta}$. As $h$ is injective, we cannot have $|c|>1$, or else $h\left(R(\frac{2\pi}{c})e_1\right)=R(2\pi)e_1=e_1=h(e_1)$. We cannot have $|c|<1$ either, otherwise $e_1=h(e_1)=h\left(R(2\pi)e_1\right)=R(2\pi c)e_1$. Thus $c=\pm1$ and $h$ is either the identity map or a reflection.
THE INDUCTIVE STEP. We will split the proof into two parts.
Part I. For any $u\in S^n$, denote the "great belt" (an analogy of great circle) normal to $u$ by $B_u:=u^\perp\cap S^n=\{x\in S^n:\langle x,u\rangle=0\}$. The purpose of this part of the proof is to show that for every unit vector $u$, we have
$$
\begin{align}
&h(B_u)=B_{h(u)} \text{ and}\tag{3}\\
&h|_{B_u}=q|_{B_u} \text{ for some linear isometry } q:u^\perp\to h(u)^\perp.\tag{4}
\end{align}
$$
Let $v=h(u)$. Then $\langle h(x),v\rangle$ is a constant on $B_u$, for, if $x,x'\in B_u$, there is some $R\in SO(n+1,\mathbb R)$ such that $Ru=u$ and $Rx=x'$. Hence the inner product condition $(1)$ implies that $\langle h(x'),v\rangle=\langle h(x),v\rangle$.
So, let $\langle h(x),v\rangle\equiv c$ on $B_u$ and let $s=\sqrt{1-c^2}$. Then $h(B_u)\subseteq cv+sB_v$. (When $n=2$, one can visualise $cv+sB_v$ as a circle with centre $cv$ and radius $s$ that is parallel to the great circle $B_v$.) Since $h$ is injective, $s\ne0$. Pick an linear isometry $q_1:\mathbb R^{n+1}\to\mathbb R^{n+1}$ such that $q_1(u)=v$ (hence $q_1(u^\perp)=v^\perp$ and $q_1(B_u)=B_v$) and define $g:B_u\to B_u$ by
$$
g(x)=\frac{1}{s}q_1^{-1}\left(h(x)-cv\right).\tag{5}
$$
Then $g$ is continuous and injective on $B_u$ and $\langle h(x),h(x')\rangle=c^2+s^2\langle g(x),g(x')\rangle$ for all $x,x'\in B_u$. Therefore $\langle g(x),g(x')\rangle=\langle g(Rx),g(Rx')\rangle$ for every linear isometry $R$ on $u^\perp$ with determinant $1$. Since $B_u$ is isomorphic to $S^{n-1}$, by induction assumption we have
$$
g=q_2|_{B_u}\ \text{ for some linear isometry }\ q_2:u^\perp\to u^\perp.\tag{6}
$$
In particular, $g$ is bijective on $B_u$ and hence
$$
h(B_u)=cv+sB_v.\tag{7}
$$
It follows that for any $y\in cv+sB_v$, there exists $x\in B_u$ such that $y=h(x)$. Pick any $R\in SO(n+1,\mathbb R)$ such that $Ru=-u$ and $Rx=x$. Then
$
\langle h(-u),y\rangle
=\langle h(Ru),h(Rx)\rangle
=\langle h(u),h(x)\rangle
=\langle v,y\rangle=c.
$
That is,
$$
\langle h(-u),y\rangle=c\quad\forall y\in cv+sB_v.
$$
Since $\|h(-u)\|=1$ and $h(-u)\ne v$, this is possible only if $(c,s)=(0,1)$ (and $h(-u)=-v$). Hence $(3)$ follows from $(7)$. Also, definition $(5)$ now gives $h|_{B_u}=q_1\circ g$ and hence by $(6)$, $h|_{B_u}=q_1\circ q_2|_{B_u}=(q_1\circ q_2)|_{B_u}$. Thus $(4)$ is also satisfied.
Part II. Let $\{e_1,\ldots,e_{n+1}\}$ be the standard basis of $\mathbb R^{n+1}$. For brevity, abbreviate $B_{e_i}$ as $B_i$. By composing $h$ with an appropriate linear isometry, we may assume that $h(e_1)=e_1$. By $(3)$ and $(4)$, $h(B_1)=B_1$ and $h|_{B_1}$ agrees with an linear isometry. So, by composing $h$ with another linear isometry that leaves $e_1$ invariant, we may assume that
$$
h(e_i)=e_i\ \text{ for each } i.\tag{8}
$$
For each $i$, if we apply $(3)$ and $(4)$ to $u=e_i$, we see that $h(B_i)=B_i$ and that $h|_{B_i}=q_i|_{B_i}$ for some linear isometry $q_i$ defined on $e_i^\perp$. It follows from $(8)$ that $q_i$ is the identity map and hence so is $h|_{B_i}$.
Our proof is complete if we can show that $h$ is the identity map on the whole hypersphere $S^n$. For any $x=(x^1,x^2,\ldots,x^{n+1})^T\in S^n$, normalise $(0,x^2,\ldots,x^{n+1})^T$ to a unit vector $v_{n+1}$ if $|x^1|<1$, or define $v_{n+1}=e_{n+1}$ if $|x^1|=1$. Let $v_1=e_1$ and extend $\{v_1,v_{n+1}\}$ to an orthonormal basis $\{v_1,v_2,\ldots,v_{n+1}\}$ of $\mathbb R^{n+1}$. Then $x\in B_{v_2}$.
Since $v_1=e_1$, we have $h(v_1)=v_1$ by $(8)$. We also have $h(v_i)=v_i$ for each $i\ge2$ because $v_2,\ldots,v_{n+1}\in B_1$ and $h|_{B_1}$ is the identity map. Therefore, by applying $(3)$ to $u=v_2$, we have $h(B_{v_2})=B_{h(v_2)}=B_{v_2}$ and by $(4)$, $h$ agrees with an linear isometry $q:v_2^\perp\to v_2^\perp$ on $B_{v_2}$. Hence $q(v_i)=h(v_i)=v_i$ on a basis $\{v_1,v_3,v_4,\ldots,v_{n+1}\}$ of $v_2^\perp$, i.e. $q$ is the identity map. Therefore $h|_{B_{v_2}}$ is also the identity map. Hence $h(x)=x$, because $x\in B_{v_2}$.