问题描述
除了在网络视图中的Messenger聊天,tel:和mailto:之外,其他所有功能均应正常运行 这是代码
if (url.startsWith("mailto:")) {
//Handle mail Urls
startActivity(new Intent(Intent.ACTION_SENDTO,Uri.parse(url)));
return false;
} else {
if (url.startsWith("www.messenger.com")) {
Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(url));
startActivity(intent);
return false;
} else {
if (url.startsWith("tel:")) {
startActivity(new Intent(Intent.ACTION_DIAL,Uri.parse(url)));
return false;
}
我也尝试过在每种情况下都使用ACTION_VIEW,但还是一样。 而且此Uri.parse(url).getHost()。equals(“ www.messenger.com”)仍然相同 对于Messenger
2020-08-27 11:15:25.579 7442-7442/com.mesports.ga E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.mesports.ga,PID: 7442
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=intent://user/102700191461284/?intent_trigger=mme&ref=c4254e87a85bef8dd4c3e74bc771d099dda9c6bb22e340c644&nav=discover&source=customer_chat_plugin&source_id=1507329&Metadata={"referer_uri":"https:\/\/m-esports.ga\/f1ea937767db2f4"} }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2014)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1675)
at android.app.Activity.startActivityForResult(Activity.java:4586)
at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:676)
at android.app.Activity.startActivityForResult(Activity.java:4544)
at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:663)
at android.app.Activity.startActivity(Activity.java:4905)
at android.app.Activity.startActivity(Activity.java:4873)
at com.mesports.ga.MainActivity$MyWebviewClient.shouldOverrideUrlLoading(MainActivity.java:234)
at android.webkit.WebViewClient.shouldOverrideUrlLoading(WebViewClient.java:77)
at org.chromium.android_webview.AwContentsClientBridge.shouldOverrideUrlLoading(chromium-Monochrome.aab-stable-414712573:16)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:326)
at android.os.Looper.loop(Looper.java:160)
at android.app.ActivityThread.main(ActivityThread.java:6762)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
2020-08-27 11:15:27.238 7442-7442/com.mesports.ga I/Process: Sending signal. PID: 7442 SIG: 9
编辑: 现在,通过在代码中声明它们,邮件和电话现在可以正常工作 对于Messenger来说,甚至不显示使用Messenger打开的选项
if (url.startsWith("intent")){
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_VIEW);
if (sendIntent.resolveActivity(getPackageManager()) != null) {
startActivity(sendIntent);
}
return true;
}
解决方法
通过比其他条件更早声明来修复电话和mailto