javascript - 在 android 中包含 HTML UI

标签 javascript android html

我想为我的 android 应用程序(使用 android studio)包含 HTML UI。我已经获取了一个 webview 并成功包含了 HTML UI,现在我也可以看到输出了。但是在 HTML UI 中有一个按钮,我想为其编写 onClick 功能。我试过了,但没有得到输出。请帮我离开这里。 这是我的 HTML UI 代码。

所有标签均已正确关闭。我想在这里编写 onclick 功能

<a href="#english_page" class="lang-selector-options-eng" onClick = "onEnglsihClick('English Clicked')" data-transition="fade" data-value="eng">English</a></li>
<li><a href="javascript:;" onClick="onArabicClick('arabic is clicked')">Arabic</a>.

如上所示,我已经编写了点击功能,我的 Javascript 代码在这里,

   <script type = "text/javascript">
        function onEnglsihClick(englishToast)
            {
                Android.showToast(englishToast);
            }
        function onArabicClick(arabicToast)
            {
                Android.showArabicToast(arabicToast);
            }
        </script>

当我点击英语 Toast 时,阿拉伯语也以同样的方式出现。但是当我点击英语或阿拉伯语时,我没有得到输出。我的android代码在这里,

public class MainActivity extends AppCompatActivity {

@SuppressLint("JavascriptInterface")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    WebView webView =  (WebView)findViewById(R.id.webView);
    //enable JavaScript
    webView.getSettings().setJavaScriptEnabled(true);
    webView.addJavascriptInterface(new WebAppInterface(this) , "Android");
   // webView.loadUrl("http://vebdesignprojects.com/pro/geo-punch/160506/vehicle-detail-report.html");
    webView.loadUrl("file:///android_asset/html/map-screen.html");
}

public class WebAppInterface
{
    Context mContext;
    WebAppInterface(Context c)
    {
        mContext = c;
    }
    public void showToast(String toast)
    {
        Toast.makeText(MainActivity.this, toast, Toast.LENGTH_SHORT).show();
    }

    public void showArabicToast(String arabictoast)
    {
        Toast.makeText(MainActivity.this, arabictoast, Toast.LENGTH_SHORT).show();
    }
}
}

所有大括号和 TAGS 正确闭合。请帮助我。

最佳答案

您还没有为接口(interface)注释函数

public class WebAppInterface
{
    Context mContext;
    WebAppInterface(Context c){
        mContext = c;
    }

    @JavascriptInterface
    public void showToast(String toast){
        Toast.makeText(MainActivity.this, toast, Toast.LENGTH_SHORT).show();
    }

    @JavascriptInterface
    public void showArabicToast(String arabictoast){
        Toast.makeText(MainActivity.this, arabictoast, Toast.LENGTH_SHORT).show();
    }
}

有关详细信息,请参阅 Android Documentation

关于javascript - 在 android 中包含 HTML UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37178022/

相关文章:

javascript - 带有查询字符串的 URL 的正则表达式

javascript - 多个这个,使用第一个

javascript - JQuery - 删除不匹配正则表达式的字符

html - 为什么我的输入表单不会粘在我的按钮上?

javascript - 如何使用 CSS 或 JS 使图像变暗以保持透明度不变?

javascript - 简单的 html textarea/contenteditable 文本编辑器组件支持谷歌浏览器的链接、撤消、tab-in/outdent

android - 拉动以刷新android中的水平 ListView

android - 平板电脑中的多桌面 (Android)

java - 操作栏选项卡的自定义位置

javascript - 如果值为 0,我可以隐藏文本框值吗?