ユーザーがプラグインFirefoxをダウンロードすると(たとえば)、ダウンロードが完了するとすぐにプラグインのインストールが開始されます。
サファリで同じことを達成することは可能ですか?つまり、ユーザーがリンクをクリックしてプラグインをダウンロードすると、プラグインがダウンロードされると、自動的にインストールが開始されます。
ユーザーがプラグインFirefoxをダウンロードすると(たとえば)、ダウンロードが完了するとすぐにプラグインのインストールが開始されます。
サファリで同じことを達成することは可能ですか?つまり、ユーザーがリンクをクリックしてプラグインをダウンロードすると、プラグインがダウンロードされると、自動的にインストールが開始されます。
を除いて、これは他のドメインでは不可能だと思いますextensions.apple.com
。
私はこれについていくつかの広範なテストを行いましたが、safari.installExtension()メソッドは、ドメインがextensions.apple.comと一致する場合にのみ存在します(特定のChrome APIが拡張機能自体の内部にのみ表示されるのと同様に、おそらくブラウザーによって制御されます) 。
JSファイル自体に移動し、JSコンソールを開いてこの理論をテストしました: https ://extensions.apple.com/home/scripts/extensionInstall.js
そのJSファイルがロードされtypeof(safari.installExtension)
たら、JSコンソールに入力すると、が返され"function"
ます。HTML以外のページに存在することに注意してください。これは、ブラウザによって提供されていることを意味します(このスクリプトは実行されず、このメソッドを提供するコードも含まれていないため)。
他のサイトでこれを試してみましたが、存在しません:"undefined"
。
また、サブドメインとして拡張機能が必要だと頭がおかしくなったので、http://extensions.joomla.orgでもテストしました。サイコロはありません。ただし、SSLである拡張機能のサブドメインが見つからないようです。それはうまくいくかもしれませんが、この方法はAppleの特定の拡張機能サブドメインにある場合にのみ表示されるように規制されているように見えるので、私はそれを真剣に疑っています。
ここではその解決策はありませんが、おそらくこれが役立つでしょうか?
https://extensions.apple.comのアップル拡張機能ギャラリーでは、拡張機能はワンクリックでインストールされます。私のWebサイトでも同じことを実現したかったので、JSソースコードを確認しました。
そこでのjavascriptファイルは、「ExtensionOneClick」オブジェクト(https://extensions.apple.com/home/scripts/extensions.js)を定義します。
拡張機能のインストール専用の方法:
// href : path to the extension ".safariextz" file
// id : com.whatever.myextension-<safaridevelopper10charsid>
safari.installExtension(id, href);
これを自分のWebサイトで複製しようとしましたが、「safari is undefined」と表示されるので、Safariでのサイト固有のハックがここで役立っていると思いますか?