2016-12-10 4 views
0

私はcordovaを使用していて、コードブラウザプロジェクトのローカルファイルではないリモートサイトを通常のブラウザと特定のアプリにインストールしています。Cordova:デバイスアプリでページが開かれているかどうかを判断する

ページがアプリ内で開かれている場合は、コードブラウザのスクリプトを導入する必要があります。通常のブラウザで開かれた場合は起こらないようにしてください。

ページがアプリ内で開いているかどうかを確認する方法があるのだろうか?

if (isApp()) { 
    document.addEventListener('deviceready',() => { 
     bootstrap(); 
    } 
} else { 
    bootstrap(); 
} 

私は両方のケースでUserAgentスパイ、重大な情報が存在しないように見えました。

また、UserAgentの情報をコードバプロジェクトに追加できますか?

答えて

0

/config.xmlに次の行を追加します。

参照:http://cordova.apache.org/docs/en/dev/config_ref/index.html#Android%20Configuration

<preference name="AppendUserAgent" value="Cordova" /> 

その後、我々は判断することは非常に早い時間にfollwing条件を使用することができます。

function isApp() { 
    return /Cordova/.test(windows.navigator.userAgent); 
} 

我々はcordova.jsを導入するかどうか、イベントを決めることができます。

let cordovaReady = null; 

if (/Cordova/.test(window.navigator.userAgent)) { 
    cordovaReady = new Promise((resolve, reject) => { 
    const script = document.createElement('script'); 
    script.type = 'text/javascript'; 
    script.src = '/cordova/cordova.js'; 
    script.onload =() => { 
     document.addEventListener('deviceready',() => { 
     resolve(); 
     }, false); 
    }; 
    document.body.appendChild(script); 
    }); 
} else { 
    cordovaReady = Promise.reject(); 
} 

// We got cordovaReady as a Promise that tells both `inApp()` and `deviceready`. 
cordovaReady.then(() => { // done 
    // windows.cordova is available 
},() => { // fail 
    // windows.cordova is undefined 
    console.log('The page is not open under Cordova App.'); 
}).then(() => { // always 
    // launch your app 
    bootstrap(); 
}); 
0

あなたは(すなわち。cordova.jsががページに含まれている)あなたのアプリはコルドバの環境で実行されているかどうかを判断するためにwindow.cordovaのためにテストすることができ

+0

私はその前に知りたいのですが、 'cordova.js' –

関連する問題