您好,我是android的新手,我有一个网站,仅通过使用**web view**
就可以将其转换为移动应用程序了,我现在想要的是一个可放入android中的函数,以便我可以找到所有在网站上拨打电话号码,使其可点击并在拨打电话时拨打该电话。
呼叫功能。 我已经提前
<uses-permission android:name="android.permission.CALL_PHONE" />
而且我已经在mainactivity.java中尝试过
public static void linkifyTextViews(@NonNull TextView... textViews) {
for (TextView textView : textViews) {
Linkify.addLinks(textView, Linkify.WEB_URLS);
textView.setMovementMethod(LinkMovementMethod.getInstance());
}
}
已编辑
这是我的mainactivity.java文件
package com.business.i13bubbles;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.content.Intent;
public class MainActivity extends AppCompatActivity {
private WebView MywebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MywebView = (WebView) findViewById(R.id.view2);
WebSettings webSettings = MywebView.getSettings();
webSettings.setJavaScriptEnabled(true);
MywebView.loadUrl("http://www.13bubbles.com");
MywebView.setWebViewClient(new WebViewClient());
}
@Override
public void onBackPressed() {
if (MywebView.canGoBack()) {
MywebView.goBack();
} else {
super.onBackPressed();
}
}
public boolean shouldOverrideUrlLoading(WebView view2, String url) {
if (url.startsWith("tel:")) {
Intent intent = new Intent(Intent.ACTION_DIAL,
url.parse(url));
startActivity(intent);
} else if (url.startsWith("http:") || url.startsWith("https:")) {
view2.loadUrl(url);
}
return true;
}
}
我收到此错误
错误:找不到符号方法parse(String)
我的网络视图的ID是view2
你能帮我吗
编辑2
我认为此功能存在错误
public boolean shouldOverrideUrlLoading(WebView view2, String url) {
if (url.startsWith("tel:")) {
Intent intent = new Intent(Intent.ACTION_DIAL);
// Send phone number to intent as data
intent.setData(Uri.parse(url)); // ERROR LINE IS HERE FOR SURE
// Start the dialer app activity with number
startActivity(intent);
} else if (url.startsWith("http:") || url.startsWith("https:")) {
view2.loadUrl(url);
}
return true;
}
错误:找不到符号变量Uri
答案 0 :(得分:1)
在您的示例中,您没有正确实现WebViewClient
。我的意思是未使用shouldOverrideUrlLoading
,例如,您需要在WebViewClient
内实现该方法:
MywebView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith("tel:")) {
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(url));
startActivity(intent);
return true;
}
MywebView.loadUrl(url);
return true;
}
});
答案 1 :(得分:0)
如您先前在previous question中所讨论的,您错误地放置了shouldOverrideUrlLoading()
方法。已经纠正。
在这个问题中,您有这段代码:
url.parse(url); //see the first code sample in your question
此url中是一个字符串,不能包含函数parse()
。
这可能是导致错误的原因。让我知道是否还有其他问题。
还有一个建议,您在WebView
方法中将shouldoverrideUrlLoading()
命名为view2
。如果仅将其更改为view
,就不会造成任何问题。