我想從Whats App上的聯繫人中獲取消息(當然,我認爲是類似oAuth的東西),但據我發現,哪些應用沒有API。所以我嘗試在WebBrowser中加載Web版本並從那裏獲得消息,但我無法使其工作。如何從特定聯繫人獲取消息?
它開始加載頁面來請求掃描二維碼,但它重定向到一個頁面,說當前的瀏覽器不支持。所以我嘗試在IE上使用仿真模式,將其設置爲IE11並將http用戶代理更改爲正確的IE11,但它也不起作用。我怎樣才能解決這個問題?
這裏是我當前的代碼:
public partial class Form1 : Form
{
[DllImport("urlmon.dll", CharSet = CharSet.Ansi)]
private static extern int UrlMkSetSessionOption(
int dwOption, string pBuffer, int dwBufferLength, int dwReserved);
const int URLMON_OPTION_USERAGENT = 0x10000001;
const int URLMON_OPTION_USERAGENT_REFRESH = 0x10000002;
const string usersAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393";
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
SetEmulation();
ChangeUserAgent(usersAgent);
}
public static void ChangeUserAgent(string UserAgent)
{
UrlMkSetSessionOption(URLMON_OPTION_USERAGENT_REFRESH, null, 0, 0);
UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, UserAgent, UserAgent.Length, 0);
}
public void SetEmulation()
{
const int BROWSER_EMULATION_IE11 = 0x2AF9;
var appName = Path.GetFileName(Process.GetCurrentProcess().MainModule.FileName);
Registry.SetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION",
appName, BROWSER_EMULATION_IE11, RegistryValueKind.DWord);
}
void UnsetEmulation()
{
using (RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", true))
{
var appName = Path.GetFileName(Process.GetCurrentProcess().MainModule.FileName);
key.DeleteValue(appName);
}
}
}
,我嘗試打開這樣的:
webBrowser1.Navigate(@"http://web.whatsapp.com/");
AA完全不同的解決方案來實現,這是非常可喜的。
我正在使用Cef瀏覽器工作......我放棄.NET本地網頁瀏覽器 – Jack
如果您使用IE11瀏覽,您將在主頁中看到支持的瀏覽器。 *我們推薦使用WhatsApp以及以下瀏覽器之一:Google Chrome,Mozilla Firefox,Opera WhatsApp也支持:Microsoft Edge,Safari(僅MacOS 10.8+)*看起來該網站根本不支持IE。 –