Примечание: это было первоначально написано на Установка ADB на MAC OS X , но этот вопрос был закрыт как дубликат этого.
Это самый простой способ и обеспечит автоматическое обновление.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew cask install android-platform-tools
adb devices
Это самый простой способ получить ручную установку ADB и Fastboot.
rm -rf ~/.android-sdk-macosx/
SDK Platform-Tools for Mac
. cd ~/Downloads/
unzip platform-tools-latest*.zip
mkdir ~/.android-sdk-macosx
mv platform-tools/ ~/.android-sdk-macosx/platform-tools
platform-tools
к вашему пути echo 'export PATH=$PATH:~/.android-sdk-macosx/platform-tools/' >> ~/.bash_profile
source ~/.bash_profile
adb devices
platform-tools
к вашему пути echo 'export ANDROID_HOME=/Users/$USER/Library/Android/sdk' >> ~/.bash_profile
echo 'export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools' >> ~/.bash_profile
source ~/.bash_profile
adb devices
sudo port install android
sh /opt/local/share/java/android-sdk-macosx/tools/android
Android SDK Platform-tools
(необязательно) platform-tools
к вашему пути; в MacPorts они находятся в /opt/local/share/java/android-sdk-macosx/platform-tools
. Например, для bash: echo 'export PATH=$PATH:/opt/local/share/java/android-sdk-macosx/platform-tools' >> ~/.bash_profile
source ~/.bash_profile
adb devices
rm -rf ~/.android-sdk-macosx/
cd ~/Downloads/
unzip tools_r*-macosx.zip
mkdir ~/.android-sdk-macosx
mv tools/ ~/.android-sdk-macosx/tools
sh ~/.android-sdk-macosx/tools/android
Android SDK Platform-tools
(опционально) Install Packages
, примите лицензии, нажмите Install
. Закройте окно диспетчера SDK. platform-tools
к вашему пути echo 'export PATH=$PATH:~/.android-sdk-macosx/platform-tools/' >> ~/.bash_profile
source ~/.bash_profile
adb devices
Если у вас нет контроля над фрейм-сайтом, вы не можете обойти междоменную политику.
Если у вас есть контроль над обоими сайтами, вы можете использовать postMessage
для передачи данных в разных доменах. Очень простой пример:
// framed.htm:
window.onmessage = function(event) {
event.source.postMessage(document.body.innerHTML, event.origin);
};
// Main page:
window.onmessage = function(event) {
alert(event.data);
};
// Trigger:
// <iframe id="myframe" src="framed.htm"></iframe>
document.getElementById('myframe').contentWindow.postMessage('','*');
В событии Internet Explorer 8, переданном как параметр, может быть null, поэтому вам нужно получить доступ к событию другим способом:
В файле frame.html:
window.onmessage = function(event) {
var evt = evt || window.event;
evt.source.postMessage('Message from iFrame', evt.origin);
};
На main.html:
window.onmessage = function(event) {
var evt = evt || window.event;
alert(evt.data);
};
Событие запускается так же, как и Rob W:
document.getElementById('frameId').contentWindow.postMessage('message','*');
$(window).on('message', evt=>evt.originalEvent.data //...
– chiliNUT 5 April 2017 в 23:34