カスタムURLスキームのプラグイン(https://github.com/EddyVerbruggen/Custom-URL-scheme)を除いて、アプリを開発しているところがほとんどあります。私は正常にプラグインをインストールし、signsrestaurantandbarのカスタムURLスキームを設定しました。したがって、signsrestaurantandbar://を使用すると、アプリケーションが開きます。私が直面している問題は、URLを処理することです。 readmeでは、このために関数handleOpenURL(url)を使用できますが、アプリ内の特定のページを読み込む際に問題が発生していると言います。CordovaでカスタムURLスキームでhandleOpenURLを使用する
ここに私が試したものです:
function handleOpenURL(url) {
var strValue = url;
strValue = strValue.replace('signsrestaurantandbar://','');
window.location.href = strValue + ".html";
}
私は...私のindex.htmlページでこれを入れて、それがロードsignsrestaurantandbarにpage.htmlを開く必要が考えた://ページが、それはそれをしません正しく。私のクロムコンソールには、ページがロードされたと言われていますが、何もエラーもなく空白に見えますが、これは一度しか起こりません。私がsignsrestaurantandbar://ページを読み込もうとすると、2回目にページを読み込むだけでアプリケーションが読み込まれます。
カスタムURLスキームを使用して特定のページを読み込む方法についてのヒントはありがたいです。
さあ、行方不明だった。私はCSPをもう少し良く理解していると思います。再度、感謝します! – user3839044
handleORL()が呼び出されない理由は他にありますか?私は ''とCSPを一緒に使って上記のアプローチを試しましたが、依然として呼び出される関数を得ることはできません。 –
johnborges
問題が修正されました。なんらかの理由で、handleOpenURL()関数はHTML本体の '
のベストは、このコードを使用してグローバルhandleOpenURL機能を追加します。
はCordova Custom URL Scheme Handlingを参照してください。あなたはこの機能で
alert
を使用する場合、アプリケーションがハングアップすること注:
この方法の利点は、
Content-Security-Policy
メタタグを使用してコンテンツセキュリティポリシーを変更する必要がないことです。出典
2016-11-20 19:48:06
どこにコードを追加すればいいですか?私は 'document.addEventListener( 'deviceready'、function(){...')を試しましたが、うまくいきませんでした。 – sooon
@sooon、それは 'deviceready'イベントハンドラに置いてあります。 'が呼び出されましたか?私はChrome開発ツールが確実に私のためにログに記録されないことに気付いた。 –
私は' index.html'に '