Я хочу вызвать код JavaScript, приведенный ниже, и хочу отправить некоторый параметр в этот код, и на основании этого я хочу получить ответ от этого сценария.

<script src="https://secure.ewaypayments.com/
    scripts/eCrypt.js"
    class="eway-paynow-button"
    data-publicapikey="XXX-XXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
    data-amount="1000"
    data-currency="NZD" > 
</script>
0
NatvarLal 17 Дек 2015 в 17:07

3 ответа

Лучший ответ

Не знаю, зачем вам это нужно, но вы можете встроить WebView в свою деятельность. Судя по всему выше, код создает кнопку оплаты.

Итак:
1. создайте макет своей деятельности и разместите веб-просмотр там, где должна быть кнопка.
2. создайте HTML-файл, в который вы положили свой код выше. Поместите файл HTML в папку с активами
3. В своей деятельности загрузите html-файл в ваше веб-представление:

    WebView webView = (WebView)findViewById(R.id.webView1);
    webView.loadUrl("file:///android_asset/file.html");
    webView.getSettings().setJavaScriptEnabled(true);

Я только что понял, что вы хотите передать параметры из приложения. Один из способов сделать это - вместо файла HTML вы можете создать строку HTML, в которую вы поместите необходимую информацию. Так...

String html = "<javascript>blahblahblah</javascript>";
webView.loadData(html, "text/html", "UTF-8");
webView.getSettings().setJavaScriptEnabled(true);
0
mylovemhz 19 Дек 2015 в 03:35

В Android вы только вызываете JavaScript из WebView, например:

yourWebView.loadUrl("javascript:testEcho('Hello World!')");
0
Now You See Me 17 Дек 2015 в 14:21

Макет

<ScrollView  xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="wrap_content" >    <WebView  xmlns:android="http://schemas.android.com/apk/res/android"        android:id="@+id/webkit"        android:layout_width="fill_parent"        android:layout_height="fill_parent" />

Код Java

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

public class AndroidJSWebView extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    //WebView Object
    WebView browser;
    browser=(WebView)findViewById(R.id.webkit);
    //Enable Javascript
    browser.getSettings().setJavaScriptEnabled(true);
    //Inject WebAppInterface methods into Web page by having Interface name 'Android' 
    browser.addJavascriptInterface(new WebAppInterface(this), "Android");
    //Load URL inside WebView
    browser.loadUrl("https://www.google.co.in/");
}
//Class to be injected in Web page
public class WebAppInterface {
    Context mContext;

    /** Instantiate the interface and set the context */
    WebAppInterface(Context c) {
        mContext = c;
    }

    /**
     * Show Toast Message
     * @param toast
     */
    public void showToast(String toast) {
        Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
    }

    /**
     * Show Dialog 
     * @param dialogMsg
     */
    public void showDialog(String dialogMsg){
        AlertDialog alertDialog = new AlertDialog.Builder(mContext).create();

        // Setting Dialog Title
        alertDialog.setTitle("JS triggered Dialog");

        // Setting Dialog Message
        alertDialog.setMessage(dialogMsg);

        // Setting alert dialog icon
        //alertDialog.setIcon((status) ? R.drawable.success : R.drawable.fail);

        // Setting OK Button
        alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(mContext, "Dialog dismissed!", Toast.LENGTH_SHORT).show();
            }
        });

        // Showing Alert Message
        alertDialog.show();
    }

    /**
     * Intent - Move to next screen
     */
    public void moveToNextScreen(){
         AlertDialog.Builder alertDialog = new AlertDialog.Builder(mContext);
         // Setting Dialog Title
         alertDialog.setTitle("Alert");
         // Setting Dialog Message
         alertDialog.setMessage("Are you sure you want to leave to next screen?");
         // Setting Positive "Yes" Button
         alertDialog.setPositiveButton("YES",
                 new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog, int which) {
                         //Move to Next screen
                         Intent chnIntent = new Intent(AndroidJSWebView.this, ChennaiIntent.class);  
                         startActivity(chnIntent);  
                     }
                 });
         // Setting Negative "NO" Button
         alertDialog.setNegativeButton("NO",
                 new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog, int which) {
                         // Cancel Dialog
                         dialog.cancel();
                     }
                 });
         // Showing Alert Message
         alertDialog.show();
    }
}
}
0
Mayur Baldha 19 Дек 2015 в 03:44