[英]How to Intent Whatsapp Opened In Webview?
I want to used Whatsapp
as customer service.我想使用Whatsapp
作为客户服务。 My apps is a webview
, when the customer going to contact page, and see a number whatsapp
and Chat Us button to chat with customer service.我的应用程序是一个webview
,当客户要联系页面时,会看到一个数字whatsapp
和 Chat Us 按钮与客户服务聊天。
When customer click the button, their didn't direct open whatsapp
and showing ERR_UNKOWN_SCHEME_URL
当客户点击按钮时,他们没有直接打开whatsapp
并显示ERR_UNKOWN_SCHEME_URL
I'm using android studio and webview
to my apps using kotlin
.我正在使用kotlin
将 android studio 和webview
用于我的应用程序。
This is my activity :这是我的活动:
class MainActivity : AppCompatActivity() {
internal var webView: WebView? = null
private var mCM: String? = null
private var mUM: ValueCallback<Uri>? = null
private var mUMA: ValueCallback<Array<Uri?>>? = null
@SuppressLint("SetJavaScriptEnabled", "WrongViewCast")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
webView = findViewById(R.id.ifView) as WebView
assert(webView != null)
val webSettings = webView!!.settings
webSettings.javaScriptEnabled = true
webSettings.allowFileAccess = true
if (Build.VERSION.SDK_INT >= 21) {
webSettings.mixedContentMode = 0
webView!!.setLayerType(View.LAYER_TYPE_HARDWARE, null)
}
else {
webView!!.setLayerType(View.LAYER_TYPE_SOFTWARE, null)
}
webView!!.webViewClient = Callback()
webView!!.loadUrl("http://example.com") //add your test web/page address here
webView!!.setWebChromeClient(object : WebChromeClient() {
SuppressWarnings("deprecation")
@Override
fun shouldOverrideUrlLoading(view: WebView, url: String?): Boolean
{
if (url != null && url.startsWith("whatsapp://")) {
val sendIntent = Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "Moon TV");
sendIntent.setType("text/plain");
sendIntent.setPackage("com.whatsapp");
startActivity(sendIntent)
return true
/* ContextCompat.startActivity(sendIntent);return true;*/
} else {
return false;
}
}
This is My Callback()
code :这是我的Callback()
代码:
inner class Callback : WebViewClient() {
override fun onReceivedError(view: WebView, errorCode: Int, description: String, failingUrl: String) {
Toast.makeText(applicationContext, "No Internet Access!", Toast.LENGTH_SHORT).show()
view.loadUrl("file:///android_asset/error.html")
}
}
This is php code to Open Direct Chat Whatsapps
Customer Service这是打开直接聊天Whatsapps
客户服务的 php 代码
<a href="https://api.whatsapp.com/send?phone=628118906771&text=Halo%20Example," class="btn btn-success btn-md">Visit WhatsApp</a>
I want Intent WhatsApp In Webview.我想要 Webview 中的 Intent WhatsApp。 Thank You.谢谢你。
From your MyActivity
, remove this :从您的MyActivity
中删除:
SuppressWarnings("deprecation")
@Override
fun shouldOverrideUrlLoading(view: WebView, url: String?): Boolean
{
if (url != null && url.startsWith("whatsapp://")) {
val sendIntent = Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "Moon TV");
sendIntent.setType("text/plain");
sendIntent.setPackage("com.whatsapp");
startActivity(sendIntent)
return true
/* ContextCompat.startActivity(sendIntent);return true;*/
} else {
return false;
}
And, you add this code in your Callback()
function or inner class Callback
:并且,您在Callback()
函数或inner class Callback
添加此代码:
override fun shouldOverrideUrlLoading(view: WebView, url: String?): Boolean {
var overrideUrlLoading = false
if (url != null && url.startsWith("whatsapp://")) {
view.context.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))
overrideUrlLoading = true
} else {
view.loadUrl(url)
}
return overrideUrlLoading
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.