Android WebView.addJavascriptInterface () есть ограничения? - PullRequest
0 голосов
/ 25 октября 2011

интерфейс передается в javascript через

WebView.addJavascriptInterface()

каким-либо образом ограничен?

Я имею в виду, что если я сделаю

SmsManager sms = SmsManager.getDefault();
myWebView.addJavascriptInterface(sms,"SMSManager");

, то в javascript

<input type="button" value="Send SMS" onClick="sendSMS()" />

<script type="text/javascript">
    function sendSMS() {
        sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);
    }
</script>

будет ли JavaScript отправлять SMS?Означает ли это, что javascript может использовать любые привилегии приложения, указанные в манифесте приложения, если это позволяет переданный объект?

Любая помощь приветствуется,

thanx Matej S.

1 Ответ

2 голосов
/ 25 октября 2011

Это должно работать нормально. Обычно лучше создать пользовательский объект, который будет представлять именно те операции, к которым вы хотите, чтобы WebView имел доступ. Я построил один, который показал функцию вибрации телефона (которая требует разрешения), например. Также будьте осторожны с тем, какие объекты находятся в сигнатуре для методов, которые вы хотите иметь возможность вызывать из JavaScript. Вы, вероятно, хотите придерживаться примитивов и массивов, и будьте осторожны с логическими значениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...