在Android webview中启动javascript bookmarklet,点击Android按钮

时间:2013-09-24 12:17:23

标签: javascript android webview

我有一个通常用以下方式解雇的书签:

javascript: function loadScript(scriptURL) {
var scriptElem = document.createElement('SCRIPT'); 
scriptElem.setAttribute('language', 'JavaScript'); 
scriptElem.setAttribute('src', scriptURL); 
document.body.appendChild(scriptElem);
} loadScript('http:/www.pathtojavascript.co.uk/javascript.min.js');

来自书签。

我现在正试图在Android应用程序中解雇此问题,我在webview下面有一个webview和一个Android按钮,我想要做的是在按下Android按钮时将书签加载到webview中。

我一直在关注http://android-er.blogspot.co.uk/2011/10/call-javascript-inside-webview-from.html

然而,我认为这是在javascript位于webview中加载的html文件中时使用的,而我的是在当前网页上方显示,而javascript在http:/www.pathtojavascript.co.uk/javascript.min.js

找到

我目前的课程:

public class SearchViewer extends SherlockActivity {

    TextView grabit;
    WebView webView;

    @SuppressLint("JavascriptInterface")
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.searchviewer);
        getSupportActionBar().setHomeButtonEnabled(true);
        getSupportActionBar().setIcon(R.drawable.ic_arrowleft);

        Intent intent = getIntent();
        String url = intent.getStringExtra("URL");
        String name = intent.getStringExtra("Name");
        setTitle(name);

        webView = (WebView) findViewById(R.id.webView1);
        webView.loadUrl(url);
        webView.getSettings().setLoadWithOverviewMode(true);
        webView.getSettings().setUseWideViewPort(true);
        webView.getSettings().setJavaScriptEnabled(true); 
        webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return false;
            }
        });
        grabit = (TextView) findViewById(R.id.grabit);
        grabit.setOnClickListener(OnClick_grabit);


    }

    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {

        case android.R.id.home:
            finish();
             break;

        default:
            return super.onOptionsItemSelected(item);
        }
        return false;
    }

    public void onStart() {
        super.onStart();
        EasyTracker.getInstance(this).activityStart(this); 
    }

    public void onStop() {
        super.onStop();
        EasyTracker.getInstance(this).activityStop(this);
      }


    private OnClickListener OnClick_grabit = new OnClickListener() {
        public void onClick(View v) {
            //Code to launch javascript?
        }
    };



}

2 个答案:

答案 0 :(得分:0)

启动Javascript的代码

 webView.loadUrl("javascript:$the method to be invoked$");

使用您要调用的javascript方法替换 $要调用的方法$ 。希望有所帮助。

答案 1 :(得分:0)

试试这个

        webView.setWebViewClient(new WebViewClient(){
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            webView.loadUrl("javascript:VODPlay()");
           }
        });

这样,您可以调用js文件中的特定函数。