【问题标题】:Call javascript function in Android WebView在 Android WebView 中调用 javascript 函数
【发布时间】:2013-06-06 02:46:02
【问题描述】:

我有一个带有 WebView 和 Button 的活动。 Android sdk 17. 网站不是我的,反正我也改不了。我需要通过android按钮点击来做js代码。

我正在尝试这样做

public class RostelecomLoginActivity extends Activity {

WebView webView;
String url;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_rostelecom_login);

    Intent webIntent = getIntent();
    final String url = webIntent.getStringExtra("url");

    webView = (WebView) findViewById(R.id.webView1);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setSaveFormData(true);
    webView.getSettings().setSavePassword(true);

    Button button = (Button) findViewById(R.id.button1);
        button.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            webView.addJavascriptInterface(new Object(){
                @JavascriptInterface
                public void test(){
                    Log.d("JS", "test");
                }
            },"Android");
            webView.loadUrl("javascript:(function(){document.getElementById('mA').click();})()");
        }
    });

    webView.loadUrl(url);

}}

但它什么也没做。 我怎样才能正确调用我的js?

【问题讨论】:

    标签: javascript android android-webview


    【解决方案1】:
    webview.loadUrl("javascript:functionName(\"" + argument + "\")");
    

    【讨论】:

    • 可以使用单引号代替转义字符。
    【解决方案2】:

    用这个改变你的行..

    myWebView.loadUrl("javascript:testEcho('Hello World!')");
    

    试试这个可能对你有帮助...

    【讨论】:

      【解决方案3】:

      我假设您在单击正在访问的外部网站时尝试调用测试函数。

      调用您在 Java 端定义的函数的方式是您在创建 javascript 接口时指定的名称,在您的情况下为 "Android"

      所以调用将是“window.Android.test()”

      您还必须等待加载网站,然后注入 javascript 代码。

      查看我几周前使用代码Hide WebView until JavaScript is done 所做的答案。使用 webview 管理 JS 和 Java 的方法类似。

      考虑在页面加载时开始做一个简单的测试,然后将其添加到 javascript click 函数中。

      【讨论】:

        猜你喜欢
        • 2011-05-18
        • 2017-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-31
        • 2016-11-29
        • 2012-05-10
        • 2018-05-10
        相关资源
        最近更新 更多