我可以从 android webview 打开 whatsapp 应用吗
Can I open whatsapp app from android webview
我制作了一个网站的网页视图。现在我想将我的网络视图中的一些数据共享到 whatsapp 应用程序。我能够打开 whatsapp web,但我的客户希望我打开 whatsapp 应用程序而不是 whatsapp web。我该怎么做?
这是我在我的站点中打开 whatsapp web 所做的:
<a class="social-icon whatsapp"
href="javascript:popWin('https://api.whatsapp.com/send?text=Product%20Name:-<?php echo $productName; ?>.%20Product%20link:-<?php echo $productUrl; ?>', 'whatsapp', 'width=640, height=480, left=0, top=0, location=no, status=yes, scrollbars=yes, resizable=yes');"
title="<?php echo $this->__('Share on Whatsapp') ?>"
data-action="share/whatsapp/share">
<span><i class="fa fa-whatsapp"></i></span>
</a>
你可以用,它对我有用:
选项第一-
<a href="whatsapp://send?text=Hello friend!" data-action="share/whatsapp/share">Share</a>
选项二-
<a href="https://api.whatsapp.com/send?text=Hello friend!" data-action="share/whatsapp/share">Share</a>
这两个选项都适合我..
如果不适合您,请更新您手机的 android 版本 phone 并同时更新 whatsapp 版本
这里我试过了,成功了:
<a href="intent://send?text=Hello#Intent;scheme=whatsapp;package=com.whatsapp;end" class="button">Go to Whatsapp/>
请参阅 Chrome 的相关文档 here。
@Override
public boolean shouldOverrideUrlLoading(WebView wv, String url) {
if(url.startsWith("tel:") || url.startsWith("whatsapp:")) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
startActivity(intent);
return true;
}
return false;
}
将此代码放入您的 mWebView.setWebViewClient(new WebViewClient()。它将完美适用于所有 link,例如 tel :, whatsapp: 等等
使用这个并且工作正常。 (@NSMedia-解决方案)
只需输入
'myWebView.goBack();'
在 return 之前(不在 whatsApp 网页中导航)
myWebView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView wv, String url) {
if(url.startsWith("tel:") || url.startsWith("whatsapp:")) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
startActivity(intent);
myWebView.goBack();
return true;
}
return false;
}
});
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView wv, String url) {
if(url.startsWith("tel:") || url.startsWith("whatsapp:") || url.startsWith("intent://") || url.startsWith("http://") ) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
startActivity(intent);
webView.goBack();
return true;
}
return false;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
invalidateOptionsMenu();
}
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
try {
invalidateOptionsMenu();
} catch (Exception e) {
}
if (webView.canGoBack()) {
webView.goBack();
}
}
public void onPageFinished(WebView view, String url) {
// pullToRefresh.setRefreshing(false);
invalidateOptionsMenu();
}
});
我的问题用这段代码解决了。
我制作了一个网站的网页视图。现在我想将我的网络视图中的一些数据共享到 whatsapp 应用程序。我能够打开 whatsapp web,但我的客户希望我打开 whatsapp 应用程序而不是 whatsapp web。我该怎么做?
这是我在我的站点中打开 whatsapp web 所做的:
<a class="social-icon whatsapp"
href="javascript:popWin('https://api.whatsapp.com/send?text=Product%20Name:-<?php echo $productName; ?>.%20Product%20link:-<?php echo $productUrl; ?>', 'whatsapp', 'width=640, height=480, left=0, top=0, location=no, status=yes, scrollbars=yes, resizable=yes');"
title="<?php echo $this->__('Share on Whatsapp') ?>"
data-action="share/whatsapp/share">
<span><i class="fa fa-whatsapp"></i></span>
</a>
你可以用,它对我有用:
选项第一-
<a href="whatsapp://send?text=Hello friend!" data-action="share/whatsapp/share">Share</a>
选项二-
<a href="https://api.whatsapp.com/send?text=Hello friend!" data-action="share/whatsapp/share">Share</a>
这两个选项都适合我..
如果不适合您,请更新您手机的 android 版本 phone 并同时更新 whatsapp 版本
这里我试过了,成功了:
<a href="intent://send?text=Hello#Intent;scheme=whatsapp;package=com.whatsapp;end" class="button">Go to Whatsapp/>
请参阅 Chrome 的相关文档 here。
@Override
public boolean shouldOverrideUrlLoading(WebView wv, String url) {
if(url.startsWith("tel:") || url.startsWith("whatsapp:")) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
startActivity(intent);
return true;
}
return false;
}
将此代码放入您的 mWebView.setWebViewClient(new WebViewClient()。它将完美适用于所有 link,例如 tel :, whatsapp: 等等
使用这个并且工作正常。 (@NSMedia-解决方案) 只需输入
'myWebView.goBack();'
在 return 之前(不在 whatsApp 网页中导航)
myWebView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView wv, String url) {
if(url.startsWith("tel:") || url.startsWith("whatsapp:")) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
startActivity(intent);
myWebView.goBack();
return true;
}
return false;
}
});
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView wv, String url) {
if(url.startsWith("tel:") || url.startsWith("whatsapp:") || url.startsWith("intent://") || url.startsWith("http://") ) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
startActivity(intent);
webView.goBack();
return true;
}
return false;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
invalidateOptionsMenu();
}
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
try {
invalidateOptionsMenu();
} catch (Exception e) {
}
if (webView.canGoBack()) {
webView.goBack();
}
}
public void onPageFinished(WebView view, String url) {
// pullToRefresh.setRefreshing(false);
invalidateOptionsMenu();
}
});
我的问题用这段代码解决了。