2016-06-24 8 views
6

मेरे पास एक आर पैकेज है जो ब्राउज़र में Oauth2 प्रवाह को ट्रिगर करता है (httr के माध्यम से)। एक उपयोगकर्ता अजीब परिस्थिति में है कि उनके आईटी विभाग को एक विशिष्ट सिस्टम डिफ़ॉल्ट ब्राउज़र की आवश्यकता होती है (इस मामले में, यह आईई + विंडोज़ है)। लेकिन उपयोगकर्ता को एक अलग ब्राउज़र में ओएथ करने की जरूरत है।गैर-डिफ़ॉल्ट ब्राउज़र का उपयोग कैसे करें?

मुझे R_BROWSER पर्यावरण चर के बारे में पता है और अस्थायी रूप से इसे आवश्यकतानुसार ब्राउज़र पर सेट करना चाहते हैं। (और फिर आशा है कि ओएथ प्रवाह में सम्मानित किया जाएगा ...)

मैं मैक पर इसके साथ झुका रहा हूं और मेरा डिफ़ॉल्ट ब्राउज़र सफारी है। मेरे सामान्य स्थिति wrt R_BROWSER इस

Sys.getenv("R_BROWSER") 
#> [1] "/usr/bin/open" 

है मुझे पता है कि के उपयोग, जैसे मजबूर करने के लिए, क्रोम खोल या, अनुसंधान से, एक system() कॉल के साथ से:

system("/usr/bin/open -a '/Applications/Google Chrome.app' 'http://slate.com'") 

लेकिन यह कैसे मैं करता हूँ उस ज्ञान को R_BROWSER के लिए उचित सेटिंग में स्थानांतरित करें? यह काम नहीं करता:

Sys.setenv("R_BROWSER" = "/usr/bin/open -a '/Applications/Google Chrome.app'") 

जब मैं बाद में browseURL(), हमेशा की तरह सफारी डिफ़ॉल्ट इस्तेमाल किया जाता है। मुझे संदेह है कि उत्तर ओएस द्वारा अलग है। मैक ओएस के लिए, open का उपयोग करने से बचने के लिए वांछनीय लगता है और किसी भी तरह ब्राउज़र को सीधे निर्दिष्ट करें।

उत्तर

4

सबसे पहले, आप भी इतनी है कि आप सत्र के पहले वाली स्थिति बहाल कर सकते हैं और दोनों browser विकल्प के पिछले मूल्यों R_BROWSER बचाने चाहिए:

old_R_BROWSER <- Sys.getenv("R_BROWSER") 
old_browser <- options()$browser 

तो फिर तुम आदेश को फिर से चलाकर वांछित व्यवहार प्राप्त कर सकते हैं @ हैक-आरR_BROWSER सेट करने के बाद पोस्ट किया गया।

Sys.setenv("R_BROWSER" = "/usr/bin/open -a '/Applications/Safari.app'") 
options(browser = as.vector(Sys.getenv("R_BROWSER"))) 
browseURL("http://www.google.com") # opens in Safari, though my default is Chrome 

(आप, साथ ही सीधे options(browser = "/usr/bin/open -a '/Applications/Safari.app'") और browseURL काम करता है निर्धारित कर सकते हैं।)

अंत में, सिस्टम स्थिति

Sys.setenv("R_BROWSER" = old_R_BROWSER) 
options(browser = old_browser) 
2

आर कॉन्फ़िगरेशन समय पर निर्दिष्ट ब्राउज़र की तलाश करता है।

विकल्पों में से डिफ़ॉल्ट सेटिंग ("ब्राउज़र")

options(browser = as.vector(Sys.getenv("R_BROWSER"))) 

होने के लिए सेट कर दिया जाता है और ब्राउज़र को कॉन्फ़िगर समय में पाया फ़ाइल आदि/Renviron में R_BROWSER चर में सेट है। तो उस फ़ाइल को संपादित करें।

अंत में, यदि यह एक साझा प्रणाली है, तो आप अपने ~/.Renviron में निम्नलिखित फाइल

R_BROWSER=${R_BROWSER-'FireFox'} 

देखते हैं? स्टार्टअप हो सकता है। (आप Rprofile फ़ाइलों का भी उपयोग कर सकते हैं, लेकिन आम तौर पर लोग में केवल एक है .नेट फ़ाइल।)

मैं इसे this पर आधारित करता हूं।

+1

हाँ मैं बात आप इससे पहले कि मैं पोस्ट से लिंक पढ़ बहाल।क्या आप आर को उपयोग करने के लिए इस जानकारी का उपयोग करने में सक्षम हैं, उदाहरण के लिए, मैक पर क्रोम? – jennybryan

संबंधित मुद्दे